我正在使用相同的函数,我发现这个比较将返回 false:
identical(list(z = c(1,1,1), q = c(0,0,0)), list(q = c(0,0,0), z = c(1,1,1)))
Run Code Online (Sandbox Code Playgroud)
有没有办法确保 q 和 z 的顺序无关紧要,所以答案是 True?
那么,如果你有
a <- list(z = c(1,1,1), q = c(0,0,0))
b <- list(q = c(0,0,0), z = c(1,1,1))
identical(a,b)
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)
它们不相同,因为
a[[1]]
# [1] 1 1 1
b[[1]]
# [1] 0 0 0
identical(a[[1]], b[[1]])
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)
这意味着列表在某些情况下会有所不同。
如果您想不考虑顺序进行比较,可以按名称对列表进行排序
identical(a[order(names(a))], b[order(names(b))])
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
770 次 |
| 最近记录: |