如何在R语言DataFrame中保留包含deviant的分组?
筛选包含指定值的分组数据
首先注意你的数据集里存在列名笔误:.Names = c("group_id", "soudn")应该修正为.Names = c("group_id", "sound"),否则后续操作会因为列名不匹配报错。
方法一:使用dplyr(tidyverse工具链)
先修正列名,再通过分组筛选保留包含deviant的组:
library(dplyr) # 修正列名错误 df <- rename(df, sound = soudn) # 筛选保留包含"deviant"的分组 filtered_df <- df %>% group_by(group_id) %>% filter(any(trimws(sound) == "deviant")) %>% # trimws处理字符串前后空格 ungroup()
方法二:使用Base R
无需额外加载包,用基础R函数实现:
# 修正列名错误 names(df)[names(df) == "soudn"] <- "sound" # 获取所有包含"deviant"的分组ID valid_groups <- unique(df$group_id[trimws(df$sound) == "deviant"]) # 筛选数据 filtered_df <- df[df$group_id %in% valid_groups, ]
两种方法最终都会得到保留组1和组3的数据集,移除无deviant的组2。
内容的提问来源于stack exchange,提问作者S2068
相关产品推荐
相关产品推荐

