DF1
관찰 연도에 해당 국가의 인구를 반환하는 다른 열을 아래 에 추가하려고 합니다. 즉, 국가 및 연도가와 일치 DF2
하면 인구가의 열에 추가됩니다 DF2
. merge
이전에 하나의 변수 만 일치시키는 데 사용 했는데 두 변수를 완료하는 방법이 있습니까?
DF1 :
eventid |iyear | imonth| iday | CountryTxt
1.97000e+1 |1970 | 7| 2 | Albania
1.97000e+11| 1970| 0| 0 | United Kingdom
1.97001e+11| 1984| 1| 0 | Somalia
1.97001e+11| 1990| 1| 0 | France
1.97001e+11| 1991| 1| 0 | New Zealand
DF2 :
Country.Name|Code|Year|Population
Aruba |ABW |1960| 123
Afganistan |AFG |1970| 456
Albania |ALB |1970| 1000
France |FRA |1990| 5000
이 기능은 merge()
다음 과 같습니다. 인용문에서 강조된 모든 단어 ?merge
가 복수형입니다. 즉, 함수가 여러 개의 일치하는 열에서 작동 할 수 있습니다.
by, by.x, by.y : 병합에 사용되는 열의 사양입니다 . 자세히보다'.
...
기본적으로 데이터 프레임은 둘 다 이름이 있는 열 에서 병합 되지만 'by.x'및 'by.y'로 별도의 열 사양을 지정할 수 있습니다. 지정된 열과 일치하는 두 데이터 프레임의 행 이 추출됩니다.
merge(df1,df2,
by.x=c("iyear","CountryTxt"),
by.y=c("Year","Country.Name"))
iyear CountryTxt eventid imonth iday Code Population
1 1970 Albania 1.97000e+01 7 2 ALB 1000
2 1990 France 1.97001e+11 1 0 FRA 5000
df1 <- read.table(header=TRUE,sep="|", strip.white=TRUE, text="
eventid |iyear | imonth| iday | CountryTxt
1.97000e+1 |1970 | 7| 2 | Albania
1.97000e+11| 1970| 0| 0 | United Kingdom
1.97001e+11| 1984| 1| 0 | Somalia
1.97001e+11| 1990| 1| 0 | France
1.97001e+11| 1991| 1| 0 | New Zealand
")
df2 <- read.table(header=TRUE,sep="|", strip.white=TRUE, text="
Country.Name|Code|Year|Population
Aruba |ABW |1960| 123
Afganistan |AFG |1970| 456
Albania |ALB |1970| 1000
France |FRA |1990| 5000
")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다