所以,我有一个数据集,需要使用for循环做一些工作。
以下是我的假数据:
#fake data
L <- data.frame(matrix(rnorm(20), nrow=10, ncol=10))
names(L) <- c("P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9","P10")
现在,我想对整列应用一个函数,并删除列“P1”。然后,再次运行该函数,并删除“P5”,以此类推。
这是拆卸的顺序。
# order of removing column
R < c(P1, P5, P2, P8, P9, P4, P3, P6, P7)
接下来我可以尝试什么?
3条答案
按热度按时间xfb7svmp1#
这取决于您想要的输出,但我会使用
lapply
,因此每个 Dataframe 子集都保存为列表元素:R <- c("P1", "P5", "P2", "P8", "P9", "P4", "P3", "P6", "P7") lapply(seq_along(R), function(i) L[-which(names(L) %in% R[1L:i])])
cwdobuhd2#
由于列名是连续排序的,因此可以执行以下操作:
carvr3hs3#
使用
dplyr::select
和purrr:map
,如果修改R
以包含最后一列,则可能会执行类似以下操作:L[R]
用于将列置换为您希望删除的顺序。结果是您可以迭代的 Dataframe 列表。