2010-12-02 3 views
5

plyr 패키지의 **ply 함수 ldply에 행/열 출력 이름을 명시하고 싶습니다. 예를 들어** ply 함수의 출력 행/열의 이름을 plyr에서 바꿀 수 있습니까?

,

내가이 data.frame로 변환하고 내가 지금 무엇을 가지고 signif()

foo <- list(var.a = runif(3), var.b = runif(3), var.c=runif(3)) 

와 유효 숫자를자를 것인지, 목록, foo이는

q <- ldply(foo, signif, 2) 
colnames(dq)[1] <- c('id', 'q1', 'q2','q3') 
rownames(dq) <- dq$id 
입니다

쉬운 방법이 있습니까?

이전 두 가지 질문은 plyr를 사용하여 rowscols의 이름을 바꾸는 방법을 묻는 질문 이었지만 제 질문은 다릅니다. 다른 기능과 같은 시간에 이름을 명시 할 수 있습니까? 이것은 가치있는 기능 요청입니까?

답변

6

당신은 어딘가에 이름을 지정해야하거나 기능에

R> ldply(foo, function(l) c(a=signif(l[1], 2), b=signif(l[2], 2), 
+       c=signif(l[3], 2))) 
    .id a b c 
1 var.a 0.50 0.72 0.27 
2 var.b 0.82 0.38 0.24 
3 var.c 0.13 0.27 0.81 
R> 

에 예로 내부 호출되고 또는 호출 후했다있다.

자주 사용하는 또 다른 옵션은 익명 작업자 함수에 하나의 행 data.frame을 명시 적으로 만드는 것입니다. *dply() 그 외 여러분은 이것들을 간단히 하나의 data.frame과 대조했습니다. 그게 내 취향에 맞을만큼 잘 작동한다.

+0

옵션 2의 예를 게시 하시겠습니까? 유용하게 들릴지 모르겠지만 어떻게 작동하는지 직관적으로 이해하지는 못합니다. 감사. – kmm

+0

예를 들어 나의 이전 대답을보십시오 : http://stackoverflow.com/questions/3277326/group-by-in-r-ddply-with-weighted-mean 그리고 일반적으로 "[r] someterm" StackOverflow의 R 태그에서 'someterm'을 찾는다. 나는 단지'ddply'를 위해서했고 처음 두 번의 히트는 승자였다. –

+0

감사합니다. 나는 비슷한 대답을 찾기 위해 그렇게 생각하지 않았습니다. – kmm

관련 문제