r语言 - 包含两个观测值的行子集



我有一个数据集,其中一列包含观察值的行。一些行有单个值,而另一些行有两个值。我只想把包含两个观测值的行作为子集。如:

test <- data.frame(value=c("A1", "B1", "C1", "A1,C1", "C1", "C1, B1", "D1", "F1,E1"))

我想要的答案是"A1,C1", " B1", "F1,E1"。

如果多个值总是用逗号分隔,则可以对包含逗号的行执行filter

library(dplyr)
test %>% filter(grepl(",", value))
value
1  A1,C1
2 C1, B1
3  F1,E1

我考虑了两种不同的方法:

test <- data.frame(value=c("A1", "B1", "C1", "A1,C1", "C1", "C1, B1", "D1", "F1,E1"))
library(dplyr)
#By number of characters
test %>% 
filter(nchar(value) > 2)

#By detecting the comma
test %>% 
filter(stringr::str_detect(value,","))

最新更新