2016-08-17 5 views
0

안녕하세요 저는 문제가 발생한 날부터 문제에 대해 고심하고 있으며 아직 답변을 찾지 못했습니다.레벨 범위가 겹치는 R 요소

저는 국가, 인구로 된 열이있는 데이터 세트가 있다고 가정합니다. 나는 국가는 다음과 같은 수준의 요인이되고 싶어

df <- data.frame(country=c(1,2,3,4,5,6), population=c(10000,20000,30000,4000,50000,60000)) 
df 
    country population 
1  1  10000 
2  2  20000 
3  3  30000 
4  4  4000 
5  5  50000 
6  6  60000 

: 프랑스, ​​독일, 캐나다, 미국, 인도, 중국, 유럽, 미국, 원시 데이터 세트는 다음과 같습니다 그래서 나라는 숫자에 incoded한다 아시아.

France Germany Canada USA India China Europe America Asia 
10000 20000 30000 4000 50000 60000 30000 34000 110000 
이 같은 결과

tapply(df$population, df$country, sum) 

:

df$country <- factor(df$country, labels = c("France", "Germany", "Canada", "USA", "India", "Asia")) 
df 
    country population 
1 France  10000 
2 Germany  20000 
3 Canada  30000 
4  USA  4000 
5 India  50000 
6 Asia  60000 

df$country <- cut(df$country, breaks = c(0,2,4,6),labels = c("Europe", "America", "Asia")) 
df 
    country population 
1 Europe  10000 
2 Europe  20000 
3 America  30000 
4 America  4000 
5 Asia  50000 
6 Asia  60000 

내 목표는 그런 짓을하는 것입니다 그래서 요인의 조합 해 대답

없이는이 방법이 있습니까? 데이터 프레임에 세 번째 열을 생성 하시겠습니까? 나는 그것이 내 문제인지 이해할 수 있기를 바랍니다. 나는 이미 interaction()을 시도했지만 내가 원하는 바가 아닙니다.

답변

0

따라서 plyr-Package의 다음 함수는 데이터 프레임을 하위 데이터 프레임 (국가 별 하나의 하위 데이터 프레임)으로 나눈 다음 채우기 값을 합산합니다. t 함수는 데이터 프레임을 가로 지릅니다.

> library(plyr) 
> neu <- ddply(df, .(country), Summe = sum(population)) 
> t(neu) 
+0

안녕하세요, 안녕하십니까, 답변 해 주셔서 감사합니다.하지만 불행히도 제가 찾고있는 것은 아닙니다. 여전히 요인 수준이 서로 달라야하기 때문입니다. –