2016-06-21 39 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