2016-10-20 6 views
1

목록의 각 데이터 프레임에있는 변수의 합계를 가져 오려고합니다. 나는 이것과 비슷한 것을 가지고있다 :데이터 프레임 목록에 대해 sapply/lapply를 사용하여 변수의 관측치를 얻는 방법은 무엇입니까?

l <- list(a = mtcars, b = mtcars, c = mtcars) 
v <- sapply(l, function(x)sum(l$x$disp)) 

나는 합계를 포함하는 명명 된 벡터를 얻길 기대한다. 대신 나는 단지 0을 얻는다. 내 생각 엔 데이터 프레임의 이름 만 함수에 전달된다는 것입니다.

나는 다른 기능을 시도하고 lapply하지만 널/제로가있는 목록/벡터를 얻을 때마다 시도했다. 이 작업을 위해 for 문을 사용할 수도 있지만, 제 경우에는 R에있는 데이터 프레임 및 중첩 루프 목록을 포함하는 목록을 가지고 있습니다. 좋은 선택이 아닌 것 같습니다. 제가 누락 된 아이디어가 있습니까? 미리 감사드립니다. 난 당신이 필요하다고 생각

+0

에서 완전히 포장 할 수 있습니다 당신이 '목록'을 요구하고있다 sapply에서 'l'대신에. –

답변

2

,

sapply(l, function(x) sum(x["disp"])) 

# a  b  c 
#7383.1 7383.1 7383.1 

아니면 모든 목록에 걸쳐 disp 변수의 전체 합계를 필요로하는 경우, 당신은 sum

sum(sapply(l, function(x) sum(x["disp"]))) 

#[1] 22149.3