0

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

我想制作一个包含多个数据框的文件。(一个例子是 BradleyTerry2 包中的数据集“flatlizards”。该文件称为“flatlizards”,但其中有两个数据框——“contests”和“predictors”。当您要求查看数据“flatlizards”时两个数据框都分别显示在其相应的标题下)。

如何将两个单独命名的数据框连接到一个文件中?另外,如何使用 CSV 文件执行此操作?所有数据都需要保存在一个 CSV 文件中还是多个文件中?提前感谢您,我非常感谢您的帮助。

4

3 回答 3

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)

From there, you take the approach @mrdwab has taken.

Alternatively, if you want them in one dataframe or one csv, you can try using merge.

于 2012-08-01T06:13:09.357 回答
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()保存当前工作区中的所有内容。

更新:阅读塞巴斯蒂安的回答后,您似乎对创建一个listof更感兴趣data.frames。如果这是您有兴趣做的事情,并且您需要从单独的 CSV 文件中读取数据,请参阅这篇文章以帮助您入门。

于 2012-08-01T06:06:40.100 回答
0

To complete the solution by sebastian-c you can also name the components of a list:

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]]
于 2012-08-01T07:50:49.057 回答