【发布时间】:2020-02-06 18:25:59
【问题描述】:
首先,我有一个有 104 行和 12 列的大 data.frame,我想将它分成 13 行,每行 8 行,每行 12 列。
我正在尝试使代码足够健壮,不关心有多少行,而是简单地每 8 行创建一个新的 data.frame。
此外,在此之后是否可以编写一个循环通过 13 个 data.frames 进行某些计算的代码?
【问题讨论】:
-
Map(function(x,y) write.csv(x,paste0("file",y,".csv"),rownames = FALSE),split(your_data, rep(1:13, each = 8, length = 104)),1:13) -
当然,将硬编码的
104更改为nrow(your_data),您就有了更通用的解决方案:-) -
不硬编码“13”的
rep的替代方案是(seq_len(nrow(your_data)) - 1) %/% 8(进一步概括为制作的集合数量,这取决于框架的大小) .