2017-03-12 1 views
-2

저는 R에있어 매우 익숙하므로 내 질문에 대한 기본 지식이 확실하지 않지만 다음과 같은 점에 유의해야합니다.패널 데이터에서 평균을 사용하는 단면 데이터까지

는 내가 그런 내가 각 나라에 대한 모든 년간 평균을 얻을, 즉 단면 구조에 넣고해야하는 몇 가지 이유를 들어이

Country Year Outcome Country-characteristic 

A   1990 10  40 
A   1991 12  40 
A   1992 14  40 
B   1991 10  60 
B   1992 12  60 

유사한 패널 구조를 가지고 데이터를 결국 모양이 달라야합니다.

Country Outcome Country-Characteristic 

A  12  40 
B  11  60 

누구나 비슷한 문제에 직면 했습니까? 나는 lapply (table $ country, table $ outcome, mean)를 가지고 노는 중이었지만, 원하는대로 작동하지 않았습니다.

답변

0

두 가지 팁 : 1- 질문 할 때 데이터에 대한 재현 가능한 예를 제공해야합니다 (아래 read.table과 같이). 2- 열 이름에 "-"를 사용하는 것은 좋지 않습니다. 대신 "_"을 사용해야합니다.

당신은 dplyr 패키지를 사용하여 요약을 얻을 수 있습니다 :

df1 <- read.table(text="Country Year Outcome Countrycharacteristic 
A   1990 10  40 
A   1991 12  40 
A   1992 14  40 
B   1991 10  60 
B   1992 12  60", header=TRUE, stringsAsFactors=FALSE) 

library(dplyr) 
df1 %>% 
group_by(Country) %>% 
summarize(Outcome=mean(Outcome),Countrycharacteristic=mean(Countrycharacteristic)) 

# A tibble: 2 x 3 
    Country Outcome Countrycharacteristic 
    <chr> <dbl>     <dbl> 
1  A  12     40 
2  B  11     60 
0

우리는 함께 base R에서이 작업을 수행 할 수 aggregate

aggregate(.~Country, df1[-2], mean) 
# Country Outcome Countrycharacteristic 
#1  A  12     40 
#2  B  11     60 
관련 문제