2016-08-17 3 views
-1

몇 가지 관련 질문을했지만 실제로 필요한 것은 무엇인지 알지 못했습니다. 이 방법으로 3 개 이상의 도시이다 것을 제외하고데이터 프레임의 하위 집합에 함수를 적용하십시오.

Date City A City B City C 
8/17  55  65 75 
8/18  48  85 23 

:

나는 다음과 같은 데이터 FRAM 있습니다. 데이터 프레임의 모든 열에 날짜를 제외하고 함수를 적용하고 싶습니다. 각 열에 함수를 적용하면 그 트릭을 수행 할 수 있지만 모든 함수에 적용 할 표식을 찾고 있습니다. (열 이름이 다른 DF를 수용하기 위해) 날짜 열을 제외하고는.

적용, 변형되었지만 운이 없었습니다. 내가 약 1 달 동안 R과 일 해왔다는 것을 언급해야한다. 그래서 나는 아직 잘하고 있지 않다 (아직!).

사전에 감사의 말을 전합니다.

+0

데이터를 먼저 긴 형식으로 '녹여야합니다. 'df, id.vars = 'Date')' – tcash21

+0

'sapply (df [, - 1], function (i) ...)'라이브러리 (reshape2) – Sotos

답변

1

당신은 df[,-1]에 적용 할 수 있습니다

df=data.frame(Date=c("A","B"), City_A=c(55,48),City_B=c(65,85),City_C=c(75,23)) 
apply(df[,-1],1,sum) 
[1] 195 156 

을 그리고 당신은 당신의 열의 인덱스하지만 단지 이름을 모르는 경우, 당신은 사용할 수 있습니다 -(which(colnames(df)=="Date")) 대신 -1의 :

apply(df[,-(which(colnames(df)=="Date"))],1,sum) 
[1] 195 156 

당신이 lapply 버전을 선호하는 경우, 당신은

lapply(df[,-(which(colnames(df)=="Date"))],sum) 
012을 사용할 수 있습니다

그러면 목록이 반환됩니다.

+1

'data.frame'을 다루는 경우'apply'대신'lapply'를 사용하는 것이 더 안전합니다 –

+0

답변에 추가하십시오 – Arault

관련 문제