2014-03-06 7 views
0

목록에서 요소의 번호 수준을 바꾸는 방법을 궁금합니다.목록 내의 요소에 대한 이름 및 레벨 수 수정

나는 이와 같은 것을 가지고있다;

A <- factor(sample(letters,size=10,replace=TRUE)) 
B <- factor(sample(letters,size=10,replace=TRUE)) 
C <- factor(sample(letters,size=10,replace=TRUE)) 

l <- list(A,B,C) 

names(l) <- c('A','B','C') 

그리고 예를 들어 단지 1 동일 할 수준의 수를 변경하려면와 예에 이름 a, b, c입니다. 결과는 다음과 같습니다.

$A 
[1] a a a a a a a a a a 
Levels: a 

$B 
[1] b b b b b b b b b b 
Levels: b 

$C 
[1] c c c c c c c c c c 
Levels: c 

모든 포인터가 감사하겠습니다.

답변

1

이에 대한 mapply을 사용할 수

new.levels <- c('a', 'b', 'c') 
replace.fun <- function(f, nl) `levels<-`(f, rep(nl, length(f))) 
mapply(replace.fun, l, new.levels, SIMPLIFY=FALSE) 
$A 
[1] a a a a a a a a a a 
Levels: a 

$B 
[1] b b b b b b b b b b 
Levels: b 

$C 
[1] c c c c c c c c c c 
Levels: c 
+0

감사 주석을 위해. 이것은 내가 필요한 것입니다! 건배! –

+0

좋아요. 대답을 받아들이는 것을 잊지 마십시오. –