创建具有多个数据框的文件

时间:2012-08-01 05:58:48

标签: r csv dataframe

我是R的新手,所以如果这是一个基本问题我会提前道歉,但我已经搜索了高低,但还没有找到答案。

我想在其中创建一个包含多个数据框的文件。 (一个例子是BradleyTerry2包中的数据集“flatlizards”。该文件被称为“flatlizards”,但其中有两个数据框 - “竞赛”和“预测器”。当你要求查看数据“flatlizards”时两个数据帧都在它们相应的标题下单独显示)。

如何将两个单独命名的数据框连接到一个文件中?另外,如何使用CSV文件执行此操作?所有数据都需要在一个CSV文件或多个文件中吗?提前谢谢,我真的很感激帮助。

3 个答案:

答案 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]]