【发布时间】:2019-10-14 13:40:29
【问题描述】:
我有一个大型数据集,我想在其中使用 dplyr 并过滤并选择数据以创建 12 个单独的数据框。
基本上,我只使用来自较大数据集的两列数据。第一列是“绘图”,我在其中按“绘图”编号和另一个第三列(“pos_ID”)中的另一个条件进行过滤。我想创建一个按图号(我试过plot==[i])和第三个条件过滤的循环,然后创建一个新的数据框。循环将重复 12 次(因为情节跨越 1-12)。
这是我没有循环使用的代码(基于示例数据)
p1_Germ <- data %>% #p1 stands for plot 1
filter(plot==1, pos_ID<21) %>%
select(germ_bin)
这是我尝试合并循环的代码(基于示例数据)
for(i in seq_along(plot)) {
data %>%
group_by(plot[[i]], pos_ID<21) %>%
select(germ_bin)
}
这是一些示例数据
plot <- c(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12)
germ_bin <- c(0,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,0)
pos_ID <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
dataset <- data.frame(plot, germ_bin, pos_ID)
dataset
我的猜测是使用列表,但我不熟悉循环和列表,无法在线找到解决方案。我需要创建 12 个数据帧,因为我试图在另一个函数之后将它们分别转换为一个矩阵。任何有帮助的将不胜感激!
【问题讨论】: