如何根据输入变量

时间:2017-07-29 17:50:50

标签: r dataframe

我是r的新手,正在开发代码来模拟我的工作的一组方程式。

我想基于输入变量创建多个空数据帧。也就是说,如果n = 4,我想创建4个单独的数据帧,这些数据帧具有不同的名称,例如x1,x2,x3,x4。如果n = 10,我想要10个数据帧等。

我希望能够在全局环境中看到这些数据框(打开看起来类似于excel表)。

2 个答案:

答案 0 :(得分:2)

代码

要使答案具有通用性,因为这似乎是您想要的,我会制作a list,然后使用dataframes填充该列表。

my_list <- list()
for (i in seq(10)) {
    my_list[[i]] = data.frame(x=runif(100), y=rnorm(100))
}

解释

执行此代码后,您将拥有一个包含10个项目的list,标记为1 - 10.每个项目都是自己的dataframe,其中包含2列:一列包含100个统一的随机数,另一个包含100个高斯随机数(从standard normal distribution中选择)。

如果您想访问列表中的第三个数据帧,只需键入

即可
my_list[[3]]

获取该数据帧的内容。

(列表使用R中的double bracket notation,你只需要“习惯它”。但是很容易弄清楚如何正确使用它们。例如,my_list[3]会返回一个 list ,其中只有一个项目,即第三个dataframe。但是my_list[[3]] - 注意额外的括号 - 将返回 {{ 1}} ,第三个dataframe。)

答案 1 :(得分:1)

使用R Studio运行R并获取 Excel-spreadsheety 查看数据:

View (name.of.your.list [[n]])

其中name.of.your.list是data.frames列表的名称,n是您要查看的第n个data.frame。

如果你有一个data.frames列表列表,那就继续标记[[n's]]

View (name.of.your.list [[n]][[n2]])

举个例子:

dat.all = list ()

dat.all [[1]] = list ()

dat.all [[1]][[1]] = data.table ("lol" = 1:5, "whatever" = 6:10)

View (dat.all [[1]][[1]])

Excel-like table opens :O

另外,如果你是我的新手,那么我建议学习data.table而不是data.frame,它会更强大,并且可能会阻止你制作data.frames列表。

干杯。