使用Loop创建多个数据帧或矩阵

时间:2018-04-18 14:52:39

标签: r loops dataframe

我有一个包含列的数据集:

A1,B1,C1,A2,B2,C2 ......,A100,B100,C100。

我想创建多个数据帧:data1 = cbind(A1,B1,C1),data2 = cbind(A2,B2,C3)......

我的伪代码:

For i from 1 to 100 {
Data[i]= cbind(A[i],B[i],C1[i])
} 

我认为使用[i]来表示列是错误的。

我怎样才能使用循环创建多个数据帧?谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用split.default来做到这一点,即

set.seed(666)
df <- data.frame(A1 = sample(5, 5), A2 = sample(5, 5), 
                 B1 = sample(5, 5), B2 = sample(5, 5), 
                 stringsAsFactors = FALSE)

split.default(df, gsub('\\D+', '', names(df)))

给出,

$`1`
  A1 B1
1  4  4
2  1  1
3  3  5
4  5  3
5  2  2

$`2`
  A2 B2
1  4  5
2  5  1
3  2  3
4  1  4
5  3  2