2016-08-05 108 views
0

我不确定数据帧值为什么不匹配。 我有一个DF名的FileUpload看起来像这样(的的cols正确对齐):无法匹配两个数据帧值

Destination City Year Adults 
Amsterdam 2015 2 
Amsterdam 2016 2 
Amsterdam 2015 2 
Amsterdam 2016 2 
Amsterdam 2015 3 

有每个城市名后的空间。

我有没有上传,这样其他数据框:

cities <- read.csv(text = " 
     City,Lat,Long,Pop 
     Amsterdam ,4.8952,52.3702,779808 
     Bali ,115.1889,-8.4095,4225000") 

我需要两个dataframes合并,但我意识到,城市值,则返回不匹配(NA)。我试着用fileUpload %in% cities返回false

我试过删除城市后的空间,也没有工作。 typeof(df$city)都是整数。

如何让城市名称匹配在一起?

+2

检查'str(fileUpload)',我打赌你的Destination是一个因素。如果在读取时使用'stringsAsFactors = FALSE',或者现在将其转换为带有'as.character()'的字符串。 “城市”一样。 –

+0

请添加一个可重现的例子。 – mkt

回答

0

正如在注释中指出的那样,您应该将您的列转换为来自因素的字符串。

mergedCities <- merge(fileUpload, cities, by.x ="Destination City", by.y = "City", all = TRUE) 

设置all参数指定,如果你想保留所有城市或只是一个形式X或Y或仅城市存在于两个。