R函数检查一个向量是否是另一个向量的子集
R function to check if a vector is a subset of another
我需要检查 values_saved_dice 是否是 x 的子集,例如
values_saved_dice <- c(2,2,2)
x <- c(6,3,2,2,5)
我尝试了以下函数,预计它应该 return FALSE。
all(is.element(value_saved_dices, x)
但它 return 是真的,而显然它应该是假的 - 因为数字“2”在 value_saved_dices 中出现了 3 次而 x 只有“2”两次。
非常感谢任何帮助,谢谢!
我们可以paste
将向量转换成字符串并使用grepl
检查是否找到子字符串
grepl(paste(values_saved_dice, collapse = ""), paste(x, collapse = ""))
[1] FALSE
您可以创建一个函数:
cont = function(x, y) {
z = x[x %in% setdiff(x, y)]
length(z) == length(x) - length(y)
}
输出:
> values_saved_dice <- c(2,2,2) # triple 2
> x <- c(6,3,2,2,5)
> cont(x, values_saved_dice)
[1] FALSE
> values_saved_dice <- c(2,2) # double 2
> x <- c(6,3,2,2,5)
> cont(x, values_saved_dice)
[1] TRUE
我需要检查 values_saved_dice 是否是 x 的子集,例如
values_saved_dice <- c(2,2,2)
x <- c(6,3,2,2,5)
我尝试了以下函数,预计它应该 return FALSE。
all(is.element(value_saved_dices, x)
但它 return 是真的,而显然它应该是假的 - 因为数字“2”在 value_saved_dices 中出现了 3 次而 x 只有“2”两次。
非常感谢任何帮助,谢谢!
我们可以paste
将向量转换成字符串并使用grepl
检查是否找到子字符串
grepl(paste(values_saved_dice, collapse = ""), paste(x, collapse = ""))
[1] FALSE
您可以创建一个函数:
cont = function(x, y) {
z = x[x %in% setdiff(x, y)]
length(z) == length(x) - length(y)
}
输出:
> values_saved_dice <- c(2,2,2) # triple 2
> x <- c(6,3,2,2,5)
> cont(x, values_saved_dice)
[1] FALSE
> values_saved_dice <- c(2,2) # double 2
> x <- c(6,3,2,2,5)
> cont(x, values_saved_dice)
[1] TRUE