2016-06-21 115 views
2

合并命令连接表我有两个表,我想加入使用列“SPENO”,但我收到此错误:与R中

Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column 

下面是我使用的命令:

setwd("P:/Users/Richmond/PEP_tagData") 

read.csv("pepdeployments.csv", header=TRUE) 
read.csv("pepdeployments_endDate.csv", header=TRUE) 

pep_deploy1 <- "pepdeployments.csv" 
pep_deploy2 <- "pepdeployments_endDate.csv" 

combined <- merge(x=pep_deploy1,y=pep_deploy2,by.x="SPENO",by.y="SPENO") 

关于我在做什么的任何建议是错误的?谢谢。

+0

您应该添加一个标签,指出您正在使用的语言。这将允许合适的人选择问题。 – nbryans

+0

我正在使用R语言。谢谢你的提示! – biscuit

+0

'merge()'当你指定一个不存在于它所应用的输入数据框中的列名时,抛出那个特定的错误信息。因此,列名“SPENO”可能不存在于一个或两个数据框中。 – bgoldst

回答

0

您没有正确读取您的数据。您需要将read.csv(...)分配给对象

setwd("P:/Users/Richmond/PEP_tagData") 

pep_deploy1 <- read.csv("pepdeployments.csv", header=TRUE) 
pep_deploy2 <- read.csv("pepdeployments_endDate.csv", header=TRUE) 

combined <- merge(x=pep_deploy1,y=pep_deploy2,by.x="SPENO",by.y="SPENO") 

你在做什么是:

阅读在.csv文件,而只是将它打印到控制台。它没有被分配到任何对象:

read.csv("pepdeployments.csv", header=TRUE) 
read.csv("pepdeployments_endDate.csv", header=TRUE) 

然后分配字符串pepdeployments.csvpepdeployments_endDate.csv的对象。所以你的对象只是那些字符串,而不是数据。

pep_deploy1 <- "pepdeployments.csv" 
pep_deploy2 <- "pepdeployments_endDate.csv" 
+0

好的,那可行。并感谢提示! – biscuit

+0

@biscuit - 不客气。很高兴我能帮上忙。 – SymbolixAU

+0

在仔细观察之后,看起来新数据表对于从y = pep_deploy2加入/合并的所有字段具有NA值。 – biscuit