将两列从B添加到A,并使用R写入新的csv
我想根据一列将两个不同的csv文件合并为一个。两个csv数据集有一列具有相同的描述(名称)。现在,我想根据将两列从B添加到A,并使用R写入新的csv,r,csv,R,Csv,我想根据一列将两个不同的csv文件合并为一个。两个csv数据集有一列具有相同的描述(名称)。现在,我想根据名称列,将两列(POINT_X和POINT_Y)的内容从表B复制到表A 名为“TestTest”的表A的每一行都应该具有名为“TestTest”的表B的相应值 表a FID | NAME| job | school | superma | traffic | fun | shopping | 表B FID | NAME| pop | POINT_X | POINT_Y | POINT_Z
名称
列,将两列(POINT_X
和POINT_Y
)的内容从表B复制到表A
名为“TestTest”的表A的每一行都应该具有名为“TestTest”的表B的相应值
表a
FID | NAME| job | school | superma | traffic | fun | shopping |
表B
FID | NAME| pop | POINT_X | POINT_Y | POINT_Z
我已经尝试过使用merge函数了
newdata = merge(TableA, TableB, all="TRUE")
write.csv(newdata, file = "merge.csv")
这在某种程度上是可行的,但它编写了一个奇怪的新.csv,其中包含许多列,我不想这样做。我只想根据列“NAME”将列“POINT\u X”添加到TableA中
谢谢!合并仍然是最好的方式,您可以按参数添加
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"]
TableA$POINT\u X您仍然可以使用merge
,但传递tableB
仅限于NAME
、POINT\u X
和POINT\u Y
列:
newdata = merge(TableA, TableB[,c("NAME", "POINT_X", "POINT_Y")], all=TRUE)
write.csv(newdata, file = "merge.csv")
如果你能提供一些可复制的示例(即数据的子集),你就能快速得到答案。谢谢!第二种方法也非常有用。这正是我想要的:)