如何删除包含R中某些单词的数据框中的行?

时间:2014-03-02 12:09:12

标签: r dataframe rows words

我正在尝试删除数据框中包含某个单词或某些单词序列的行。例如:

mydf <- as.data.frame(read.xlsx("C:\\data.xlsx, 1, header=T"))
head(df)
#     NO    ARTICLE    
# 1   34    New York Times reports blabla
# 2   42    Financial Times reports blabla
# 3   21    Greenwire reports blabla
# 4    3    New York Times reports blabla
# 5   46    Newswire reports blabla

我想从我的data.frame中删除包含字符串“New York Times”和“Newswire”的行。我尝试过使用%in%grep的不同方法,但我不太清楚如何使用它!

我该怎么做?

2 个答案:

答案 0 :(得分:3)

根据我的评论,使用grepl,它会在向量中找到指定的字符串时返回逻辑值。在你的情况下,像:

df[!grepl('New York Times',df$Article),]

应该这样做。

答案 1 :(得分:0)

# Sample Data
NO <- c(34, 42, 21, 3)
ARTICLE <- c('New York Times reports blah blah fake news',
             'Financial Times blah blah',
             'Fox News has been very nice to me',
             'Newswire reports blah blah')
df <- data.frame(NO, ARTICLE)

# Create List of Exclusion Phrases
fakenews <- c('New York Times', 'Newswire')

# Exclude
very.nice.to.me <- df[ !grepl(paste(fakenews, collapse="|"), df$ARTICLE),]