2014-10-22 2 views
0
s <- split (x, x$factor) 
s[[1]] 

따라서 lapply과 함께 해당 요인의 하위 집합을 사용할 수 있기를 바랍니다. 아래는 내가하려고했던 모의 코드입니다.R의 서브 세트 요인 R

meanfunction <-lapply(s[[1]],function(x) colMeans(x[, c("col1","col2")])) 

하지만 작동하지 않습니다. 그래서 나는 똑똑하고 R을 속이려고하고 새로운 변수 t<-s[[1]]을 바인딩하고 그 함수에서 사용하지만 슬프게도 작동하지 않습니다. 어느 쪽이든 나는 같은 오류 메시지가 나타납니다.

Error in x[, c("col1", "col2")] : incorrect number of dimensions 

하지만 코드는 전체적으로 평가할 때 잘 작동합니다. 이견있는 사람? 감사.

편집 : X는

+1

's [[1]]'은 데이터 프레임이므로'lapply'를 호출하면 각 열에서'colMeans'가 실행됩니다. 작동하지 않습니다. –

+0

@RichardScriven that that good? – nzaleski

+0

@RichardScriven 열을 지정할 때도? 거기에 어떤 문제가 있습니까? – nzaleski

답변

1

dplyr 내가 제대로 목표를 이해 여겨 작업의 이런 종류의 좋은 선택이 4 열 문자, 숫자, 숫자, 요소와 data.frame입니다.

library(dplyr) 
x = tbl_df(data.frame(factor = factor(c(rep("A", 3), rep("B", 4))), value = 1:7)) 
group_by(x, factor) %>% summarise(mean = mean(value)) 

당신은 dplyrhere에 대한 자세한 내용을 찾을 수 있습니다 예를 들면 다음과 같습니다.

+0

둘 이상의 열에'summarise_each'를 사용할 수 있습니다. OP의 게시물에서 여러 열이 있다고 생각합니다. – akrun