首页 > 解决方案 > 如何一次读取/导入 CSV 并创建代码,这样您就不必再次读取/导入

问题描述

我有一个想与人们分享的 R 脚本,但它目前依赖于将许多单独的 csv 文件读取到数据帧中才能运行。我想知道是否有任何快速简便的方法来读取 csv 文件,然后创建代码行来创建数据框,而不必在将来读取外部文件(我有几十个 csv 文件,每个文件都有数百条记录,但我只想分享 .R 文件)。

例如,我目前有:

> species <- read.csv("species.csv")
> species
  SpeciesID        ScientificName Mortality
1        11      Acer_platanoides      2.27
2        57 Gleditsia_triacanthos      1.33
3       132         Tilia_cordata      1.33
4         1        Abies_balsamea      3.33

在阅读了 csv 数据库一次之后,我想创建代码,这样我就不必再次阅读 csv(这样我就可以向人们发送一个 R 脚本,而不是带有许多其他文件的 R 脚本)。

那么,以上内容能否以某种方式导致以下内容,而无需手动将其全部写出来?谢谢你。

> species <- data.frame("SpeciesID" = c(11, 57, 132, 1),
+                       "ScientificName" = c("Acer_platanoides", "Gleditsia_triacanthos", "Tilia_cordata", "Abies_balsamea"),
+                       "Mortality" = c(2.27, 1.33, 1.33, 3.34))
> species
  SpeciesID        ScientificName Mortality
1        11      Acer_platanoides      2.27
2        57 Gleditsia_triacanthos      1.33
3       132         Tilia_cordata      1.33
4         1        Abies_balsamea      3.34

标签: rcsv

解决方案


听起来像是您需要做的事情来创建一个可重现的示例。遵循 Joris Meys 的解决方案dput()非常容易。

链接解决方案中的一个示例:

> dput(head(iris,4))
structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6), Sepal.Width = c(3.5, 
3, 3.2, 3.1), Petal.Length = c(1.4, 1.4, 1.3, 1.5), Petal.Width = c(0.2, 
0.2, 0.2, 0.2), Species = structure(c(1L, 1L, 1L, 1L), .Label = c("setosa", 
"versicolor", "virginica"), class = "factor")), .Names = c("Sepal.Length", 
"Sepal.Width", "Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 
4L), class = "data.frame")

推荐阅读