从R中的数据框中删除包含相同或单词置换句子的行

时间:2016-12-20 13:38:16

标签: r dataframe stringdist

我有一个带文字的数据框

TERM
good morning
hello
morning good
you're welcome
hello
hi

我想过滤掉所有重复项,并且所有重复项都使用相同的单词,但顺序不同。所以我得到了:

TERM
good morning
hello
you're welcome
hi

我知道如何用stringdist获得两个单词的距离。

stringdist(stringOriginal,stringCompare,method=qgram)

但由于我有很长的数据帧,所以我不想遍历所有条目。

如何过滤掉类似的字词?

THX 约尔格

1 个答案:

答案 0 :(得分:2)

将其分解为单词,对每个记录中的单词进行排序,并保留排序后的单词不重复的行。没有包使用。

subset(DF, !duplicated(lapply(strsplit(TERM, " "), sort)))

,并提供:

            TERM
1   good morning
2          hello
4 you're welcome
6             hi

注意:可重复形式的输入是:

Lines <- "TERM
good morning
hello
morning good
you're welcome
hello
hi"
DF <- read.csv(text = Lines, as.is = TRUE, strip.white = TRUE)