2014-02-28 16 views
0

我想根據一列將兩個不同的csv文件合併爲一個。兩個csv數據集都有一個具有相同描述(名稱)的列。現在我想根據NAME列將表B中的兩列(POINT_XPOINT_Y)的內容複製到表A中。從B添加兩列到A並使用R寫入新的csv

表A的每一行都具有名稱 「TestTestTest」 應當具有名稱「TestTestTest具有表B的對應值。

表A

FID | NAME| job | school | superma | traffic | fun | shopping | 

表B

FID | NAME| pop | POINT_X | POINT_Y | POINT_Z 

我已經試過使用合併功能。

newdata = merge(TableA, TableB, all="TRUE") 
write.csv(newdata, file = "merge.csv") 

這工作不知何故,但它寫了一個奇怪的新的.csv許多列,我不想。我只想補充僅列「POINT_X」「POINT_Y」到表A取決於列「NAME」

謝謝!

+1

如果您可以提供一些可重複的示例,即您的數據子集,您可以快速獲得答案並獲得最佳方式 – Ananta

回答

0

你仍然可以使用merge,但通過tableB限於列NAME,POINT_XPOINT_Y

newdata = merge(TableA, TableB[,c("NAME", "POINT_X", "POINT_Y")], all=TRUE) 
write.csv(newdata, file = "merge.csv") 
+0

這就是我一直在尋找:) – schlomm

0

合併仍然是最好的方式,你可以通過添加參數

newdata = merge(TableA, TableB, by="NAME",all="TRUE") 

但是,它也可以實現爲

TableA$POINT_X<-TableB[match(TableB$NAME, TableA$NAME),"POINT_X"] 
TableA$POINT_Y<-TableB[match(TableB$NAME, TableA$NAME),"POINT_Y"] 
+0

謝謝!第二種方式也很有幫助。 – schlomm

相關問題