R语言嵌套公式语法疑问:如何嵌套实现筛选后取唯一值
R语言嵌套实现筛选+提取唯一值
你当前代码的问题是unique()函数用法错误——它默认接收整个数据框,不能直接传入列名参数。下面是两种正确的嵌套实现方式:
方式1:使用dplyr管道(推荐,代码更清晰)
如果你习惯用%>%管道,可以用filter替代subset(dplyr更推荐的筛选函数),再结合distinct直接提取X列的唯一值:
data %>% filter(Y == "1") %>% distinct(X)
如果需要得到一个向量而非数据框,在最后加pull(X)再去重:
data %>% filter(Y == "1") %>% pull(X) %>% unique()
方式2:基础R嵌套写法
不用管道的话,直接把筛选结果的X列传入unique即可:
unique(subset(data, Y == "1")$X)
内容的提问来源于stack exchange,提问作者Ari Monger
相关产品推荐
相关产品推荐

