假设我有一个向量列表。进一步假设我想根据他们的长度得到一个条件。也就是说,如果这些向量的长度不相等,我希望我的函数返回错误。
例如,
x <- c(1:4)
y <- c(1:5)
z <- c(1:4)
k <- list(x, y, z)
我想检查他们的长度是否相等。
stopifnot(length(k[[1]]) == length (k[[2]]) == length(k[[3]]))
我如何推广此代码并使其适用于列表中任意数量的元素?
答案 0 :(得分:1)
我们可以将lengths
与unique
stopifnot(length(unique(lengths(k)))==1)
错误:长度(唯一(长度(k)))== 1不为TRUE
lengths
将获得length
中vector
中每个list
的{{1}}作为vector
,获取unique
并检查如果length
等于1.如果不是stopifnot
,则给出错误