我想使用 R 将数据帧中的特定行提取到新数据帧中。我有两列: City
和 Household
。为了检测移动,我想要一个包含不同城市的家庭的新数据框。
例如,如果一个家庭出现 3 次,其中至少有一个城市与其他城市不同,我会保留它。否则,我删除这个家庭的 3 行。
City Household
Paris A
Paris A
Nice A
Limoge B
Limoge B
Toulouse C
Paris C
在这里,我只想保留 Household
A
和 Household C
。 最佳答案
dplyr 解决方案:计算每个家庭的唯一城市的长度,并只保留那些长度 > 1 的城市
library(dplyr)
df <- data.frame(city=c("Paris","Paris","Nice","Limoge","Limoge","Toulouse","Paris"),
household =c(rep("A",3),rep("B",2),rep("C",2)))
new_df <- df %>% group_by(household) %>%
filter(n_distinct(city) > 1)
Source: local data frame [5 x 2]
Groups: household
city household
1 Paris A
2 Paris A
3 Nice A
4 Toulouse C
5 Paris C
编辑:从评论中添加了@shadow 和@davidarenburg 的建议
关于r - 如何提取R中的特定行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30525304/