Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R中的任何应用函数从向量中迭代删除元素?_R_Vector_Indexing_Apply - Fatal编程技术网

如何使用R中的任何应用函数从向量中迭代删除元素?

如何使用R中的任何应用函数从向量中迭代删除元素?,r,vector,indexing,apply,R,Vector,Indexing,Apply,如何使用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循环需要很长的时间才能生成输出。如果您真的想使用apply函数,可以使用 t(sapply(a, setdiff, x=a)) 我们需要使用t() alist <- lapply

如何使用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循环需要很长的时间才能生成输出。

如果您真的想使用
apply
函数,可以使用

t(sapply(a, setdiff, x=a))

我们需要使用
t()

alist <- lapply(1:length(a), function(as) {
    a[-as]
})

alist以下是使用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