使用for循环在R中创建新的数据帧

时间:2019-03-26 16:03:13

标签: r for-loop

我试图在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获取单独的数据帧?

1 个答案:

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