如何使用R?
中的任何Apply函数从向量中迭代删除元素例如,鉴于a = c(1:5)
。我需要迭代地删除一个元素,以便我可以获得以下输出的列表:
2 3 4 5
1 3 4 5
1 2 4 5
1 2 3 5
1 2 3 4
如何使用任何Apply功能进行操作?由于向量中的元素数量非常大,for循环需要很长时间才能生成输出。
答案 0 :(得分:0)
如果您真的想使用apply
功能,可以使用
t(sapply(a, setdiff, x=a))
我们需要使用t()
进行转置,因为sapply
更喜欢按列顺序返回结果。
答案 1 :(得分:0)
这样的工作:
alist <- lapply(1:length(a), function(as) {
a[-as]
})
答案 2 :(得分:0)
以下是如何使用laply一次删除一个元素:
library(plyr)
laply(1:length(a), function(x) a[-x])
1 2 3 4
[1,] 2 3 4 5
[2,] 1 3 4 5
[3,] 1 2 4 5
[4,] 1 2 3 5
[5,] 1 2 3 4