我试图在R中使用for循环为分割结果创建单独的数据帧。 它可能有更好的解决方案,但我是R的初学者,因此感谢您提出任何意见。
''' 例如: '''
For (i in 1:100)
{i<-df[[i]]}
''' 我希望得到类似
'1' equal to df[[1]]
'2' equal to df[[2]]
'3' equal to df[[3]]
.
.
.
'i' equal to df[[i]]
但只能获取最后一个i
:
'100' which is equal to df[[100]]
如何为每个i
获取单独的数据帧?
答案 0 :(得分:1)
由于需要单独的数据帧,因此可以使用以下内容创建数据帧列表:
df = NULL
for (i in 1:100) {
df[[i]] = data.frame(i)
}
您可以使用列表索引访问列表中的每个数据框。例如
> df[[1]]
i
1 1
> df[[2]]
i
1 2
您可以验证列表中的每个项目都是一个数据框
> str(df) # Partial output given
List of 100
$ :'data.frame': 1 obs. of 1 variable:
..$ i: int 1
$ :'data.frame': 1 obs. of 1 variable:
..$ i: int 2
$ :'data.frame': 1 obs. of 1 variable:
..$ i: int 3
$ :'data.frame': 1 obs. of 1 variable:
..$ i: int 4
.
.
.
一旦您对R更熟悉,获得此结果的更好方法是将任务向量化,例如使用lapply
df = lapply(1:100, data.frame)