R語言之merge詳解
阿新 • • 發佈:2021-11-11
merge是R語言中用來合併資料框的函式
merge函式的宣告:
?1 2 3 4 |
merge(x,y,by=intersect(names(x),names(y)),
by.x=by,by.y=by,all=FALSE,all.x=all,all.y=all,
sort =TRUE,suffixes=c( ".x" , ".y" ),
incomparables=NULL,...)
|
merge函式引數的說明:
x,y:用於合併的兩個資料框
by,by.x,by.y:指定依據哪些行合併資料框,預設值為相同列名的列.
all,all.x,all.y:指定x和y的行是否應該全在輸出檔案.
sort:by指定的列是否要排序.
suffixes:指定除by外相同列名的字尾.
incomparables:指定by中哪些單元不進行合併.
例子:
?1 2 3 4 5 6 7 8 9 10 11 12 13 |
w1:
NAMESCHOOLCLASSENGLISH
AS11085
BS2550
AS1490
AS11190
CS1112
w2:
NAMESCHOOLCLASSMATHSENGLISH
AS358088
BS258981
CS115532
|
按照NAME, SCHOOL, CLASS合併w1和w2:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
merge(w1,w2,all=T)
NAMESCHOOLCLASSENGLISHMATHS
1AS1490NA
2AS11085NA
3AS11190NA
4AS358880
5BS2550NA
6BS258189
7CS1112NA
8CS113255
merge(w1,w2,by=c( "NAME" , "SCHOOL" , "CLASS" ),all=T)
NAMESCHOOLCLASSENGLISH.xMATHSENGLISH.y
1AS1490NANA
2AS11085NANA
3AS11190NANA
4AS35NA8088
5BS25508981
6CS11125532
merge(w1,w2,all=T,incomparables= "A" )
Error in merge.data.frame(w1,w2,all=T,incomparables= "A" ):
'incomparables' issupportedonly for mergingonasinglecolumn
merge(w1,w2,all=T,by= "NAME" ,incomparables= "A" )
NAMESCHOOL.xCLASS.xENGLISH.xSCHOOL.yCLASS.yMATHSENGLISH.y
1AS11085<NA>NANANA
2AS1490<NA>NANANA
3AS11190<NA>NANANA
4A<NA>NANAS358088
5BS2550S258981
6CS1112S115532
|
將資料框中的NA變成0
dataframe[is.na(dataframe)]