我是R的新手,所以如果这是一个基本问题我会提前道歉,但我已经搜索了高低,但还没有找到答案。
我想在其中创建一个包含多个数据框的文件。 (一个例子是BradleyTerry2包中的数据集“flatlizards”。该文件被称为“flatlizards”,但其中有两个数据框 - “竞赛”和“预测器”。当你要求查看数据“flatlizards”时两个数据帧都在它们相应的标题下单独显示)。
如何将两个单独命名的数据框连接到一个文件中?另外,如何使用CSV文件执行此操作?所有数据都需要在一个CSV文件或多个文件中吗?提前谢谢,我真的很感激帮助。
答案 0 :(得分:4)
有问题的对象是一个列表。您可以使用以下代码看到这一点:
library(BradleyTerry2)
data(flatlizards)
str(flatlizards)
您可以看到它是2的列表,其元素是单独的数据框。
您可以非常轻松地将对象组合在一个列表中:
a <- data.frame(x=rnorm(10), y=runif(10))
b <- data.frame(w=rnorm(20), z=runif(20))
ablist <- list(a, b)
从那里开始,你采取@mrdwab采取的方法。
或者,如果您希望将它们放在一个数据框或一个csv中,则可以尝试使用merge
。
答案 1 :(得分:3)
这是一个非常基本的例子:
# Clean out your current workspace
rm(list=ls())
# Create two objects
a = 1:10
b = letters[1:10]
# Save them to one file
save(a, b, file="demo.RData")
# Remove them from the workspace
rm(a, b)
ls()
## character(0)
# Re-load the data
load("demo.RData")
ls()
## [1] "a" "b"
a
## [1] 1 2 3 4 5 6 7 8 9 10
b
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
相同的原则适用于CSV文件中的数据。只需阅读它们,进行任何需要进行的清理,然后将它们捆绑到一个.RData
文件中。
还有save.image()
可以保存当前工作区中的所有内容。
更新:在阅读Sebastian的回答后,您似乎对创建list
data.frames
更感兴趣。如果您有兴趣这样做,并且需要从单独的CSV文件中读取数据,请参阅this post以帮助您开始使用。
答案 2 :(得分:0)
要通过sebastian-c完成解决方案,您还可以命名列表的组件:
a <- data.frame(x=rnorm(10), y=runif(10))
b <- data.frame(w=rnorm(20), z=runif(20))
ablist <- list(first=a, second=b)
ablist$first
ablist[[1]]
ablist$second
ablist[[2]]