如何一次读取/导入CSV并创建代码,这样就不必再次读取/导入

时间:2019-06-12 01:25:54

标签: r 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

1 个答案:

答案 0 :(得分:1)

听起来像您需要对create a reproducible example做的事情。遵循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")