我需要帮助来完成一项简单的任务。
我有一个 28x52 的数据框,我想制作几个数据框并重命名每个数据框。所以它会变成13个28x4的数据帧。我知道这可能涉及 for
循环,所以我尝试了:
for(i in seq(1,52,4)){
i <- data[,i:i+3]
}
但是没有成功。
最佳答案
这是针对 3x9 源 data.frame
的一种方法,我们希望将其子集化为 3 个 3x3 data.frame
。
m <- data.frame(matrix(1:27, ncol = 9))
lapply(split(sequence(ncol(m)), rep(1:3, each = 3)), function(x) m[, x])
# $`1`
# X1 X2 X3
# 1 1 4 7
# 2 2 5 8
# 3 3 6 9
#
# $`2`
# X4 X5 X6
# 1 10 13 16
# 2 11 14 17
# 3 12 15 18
#
# $`3`
# X7 X8 X9
# 1 19 22 25
# 2 20 23 26
# 3 21 24 27
创建要提取的列序列,并创建 data.frame
的列表
。
因此,应用于复制数据结构的内容时,您可以使用:
m <- data.frame(matrix(1:(28*52), ncol = 52))
lapply(split(sequence(ncol(m)), rep(1:(52/4), each = 4)), function(x) m[, x])
关于r - 如何在R中提取列以生成多个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20392593/