2013-07-08 1 views
0

기본적으로 값 (x1, x2, ..., xj)을 가진 "parameters"라는 목록이 있습니다. for 루프를 통해이 목록의 하위 집합을 만들고 싶지만 매번 한 요소를 생략하고 싶습니다. 예를 들어, 첫 번째 부분 집합 (for 루프의 첫 번째 반복을 통해)을 (x2, x3, ..., xj), 다음을 (x1, x3, ..., xj)로하고 싶습니다. (x1, x2, ..., xj-1)이 될 마지막 서브 세트까지 계속된다. 어떻게해야합니까?하나의 값을 제외하고 목록의 모든 요소를 ​​선택하여 R의 목록을 하위 집합으로 만드는 방법은 무엇입니까?

답변

2

나는 "목록"으로 가정합니다. vector입니다. 그렇다면 :

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

"목록"에 의해, 당신은 실제로 list을 의미하는 경우 코드는 기본적으로 동일하지만 단지 첫번째 parameters <- unlist(parameters)을한다.

5

이 유용 할 수

당신이 여기에 휴가 - 한 - 아웃 잭나이프의 bootstrap 패키지에 대한 빠른 포인터와 짧은 예를 들어 데이터를 사용하려면 그냥 경우
> Vector <- paste("x", 1:6, sep="") 
> lapply(1:length(Vector), function(i) Vector[-i]) 
0

library(bootstrap) 
vec_list=list() 
jackknife(rnorm(10,0,1),function(x) {vec_list[[length(vec_list)+1]]<<-x;mean(x)}) 
vec_list[1:10] 
0

목록에서 요소의 순서를 지정하여 목록에서 요소의 하위 집합을 만들 수 있습니다.

# create a dummy list of data frames 
d1 <- data.frame(y1=c(1,2,3),y2=c(4,5,6)) 
d2 <- data.frame(y1=c(3,2,1),y2=c(6,5,4)) 
d3 <- data.frame(y1=c(3,2,1),y2=c(9,8,7)) 
my.list <- list(d1, d2, d3) 

# get the items 1 and 3 
my.list[c(1,3)] 

# get the all element except of the first one 
my.list[c(-1)] 
:

my.list[c(1,3))] 

이 시도 목록에서 항목 1과 3을 선택하려면

관련 문제