数据框R-减少以基于文本组合排除某些行

时间:2018-07-05 15:56:44

标签: r dataframe

我有一个数据框,我试图基于该字符串排除某些行。我尝试使用grepl运行reduce,但这给了我对/错。我可以使用附加的列来减少数据框,但是我想知道在查找字符串时是否可以同时进行?

我的数据框

A <- c('A','B','C hello','C','C hello','C hello')
B <- c(1,2,3,4,5,6)

df <- data.frame(A,B)

df$Hello<- Reduce(`&`, lapply(c('C', '^((?!Hello).)*$'), grepl, df$A , perl = T, ignore.case = T))

我得到的结果是:

A          B    Hello
A          1    FALSE
B          2    FALSE
C hello    3    FALSE
C          4    TRUE
C hello    5    FALSE
C hello    6    FALSE

当字符串中有C而不是hello时,我只希望排成一行。

1 个答案:

答案 0 :(得分:0)

我们可以使用开始(^)和$来获取TRUE值,如“ Hello”列中所示

grepl("^C$", df$A)