r-检查几个句子是否相同

  • 本文关键字:句子 几个 是否 r string
  • 更新时间 :
  • 英文 :


我有以下句子:

sentences1<-c("The color blue neutralizes orange yellow reflections.", 
"Zod stabbed me with blue Kryptonite.", 
"The color blue neutralizes orange yellow reflections.",
"Red is wrong, blue is right.",
"Red is wrong, blue is right.",
"Red is wrong, blue is right.",
"You ruined my beautiful green dress.",
"There's nothing wrong with green.")

sentences2<-c("Red is wrong, blue is right.",
"Red is wrong, blue is right.",
"Red is wrong, blue is right.")

如何检查sentences1sentences2中包含的所有句子是否相等?例如,在sentences1中,我们有不同的句子,而sentences2包含相同的句子。

您可以使用all并将第一个[1]与其余的[-1]进行比较。

all(sentences1[1] == sentences1[-1])
#[1] FALSE
all(sentences2[1] == sentences2[-1])
#[1] TRUE

您可以计算矢量中唯一值的数量。

is_unique <- function(x) {
length(unique(x)) == 1
#dplyr::n_distinct(x) == 1
}
is_unique(sentences1)
#[1] FALSE
is_unique(sentences2)
#[1] TRUE
equals_vec <- function(vec) if (length(vec) <= 1) {TRUE} else if (vec[1] == vec[2]) {equals_vec(vec[2:length(vec)])} else {FALSE}
equals_vec(sentences1) # FALSE
equals_vec(sentences2) # TRUE
# in contrast to `unique` it stops at first appearance of unequal element 
# in the vec it walks through

最新更新