如何通过选择列表中除一个值之外的所有元素来对R中的列表进行子集化?

use*_*984 3 r list vector object subset

所以基本上我有一个名为"参数"的列表,其值为(x1,x2,...,xj).我想通过for循环子集这个列表,但每次都省略一个元素.所以例如我希望第一个子集(通过for循环的第一次迭代)是(x2,x3,...,xj),然后是(x1,x3,...,xj),所以on,直到最后一个子集(x1,x2,...,xj-1).我该怎么做呢?

Jil*_*ina 6

这可能很有用

> Vector <- paste("x", 1:6, sep="")
> lapply(1:length(Vector), function(i) Vector[-i])
Run Code Online (Sandbox Code Playgroud)


Tho*_*mas 2

我假设你所说的“列表”是指vector。如果是这样:

parameters <- rnorm(100)
y <- matrix(nrow=length(parameters)-1,ncol=length(parameters))
for(i in 1:length(parameters))
    y[,i] <- parameters[-i]
Run Code Online (Sandbox Code Playgroud)

如果“列表”实际上是指 a list,则代码基本相同,但只需parameters <- unlist(parameters)先执行即可。