我需要在R数据框中循环因子水平。在循环内部,我需要对包含这些水平对定义的子集的数据框执行操作。这些对是该因子的两个连续唯一水平。
以下是我尝试过的示例:
我试图包含级别
编辑:输出(针对此示例)应为以下两个数据框:
以下是我尝试过的示例:
require(dplyr)
df <- data.frame(fac = rep(c("A", "B", "C"), 3))
for(i in levels(fac)){
if(i != levels(fac)[length(levels(fac))]){
df %>% filter(fac %in% c(i, i + 1))
}
}
我试图包含级别
i
及其后续级别,但显然表达式i + 1
行不通。如何解决这个问题?我必须将变量fac
数字化,还是有更简洁的解决方案可用?编辑:输出(针对此示例)应为以下两个数据框:
dfAB <- df %>% filter(fac %in% c("A", "B"))
dfBC <- df %>% filter(fac %in% c("B", "C"))