Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将两列从B添加到A,并使用R写入新的csv_R_Csv - Fatal编程技术网

将两列从B添加到A,并使用R写入新的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

我想根据一列将两个不同的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
我已经尝试过使用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")

如果你能提供一些可复制的示例(即数据的子集),你就能快速得到答案。谢谢!第二种方法也非常有用。这正是我想要的:)