我有以下句子:
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.")
如何检查sentences1
和sentences2
中包含的所有句子是否相等?例如,在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