假设有以下数据框:
df <- data.frame(group = rep(LETTERS[1:2], each = 3), value = 1:6, stringsAsFactors = FALSE)
df$extra_col <- c("a", "b", "c", "d", "e", "f")
现在我们想按组将数据框拆分,并删除不一致的行,可以使用以下代码:
split_df <- lapply(unique(df$group), function(x) {
temp_df <- df[df$group == x, ]
temp_df[, ncol(temp_df) - 1] <- NULL
temp_df
})
final_df <- do.call(rbind, split_df)
这将返回拆分后的数据框列表,每个数据框都只包含因子值相同的行,并删除最后一列,最后将它们连接成单个数据框。