全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2242 4
2017-12-07
悬赏 1 个论坛币 已解决
各位好,我是刚接触r的小白一个。我想要合并两个dataframe,但是发现merge后的结果只是把两个dataframe上下连结在一起。下面是我的code:
h=read.csv("h1b_kaggle.csv")
##https://www.kaggle.com/nsharan/h-1b-visa/data
h_1=h
#summary(h_1)
#str(h_1)
##separate the city and state
library(stringr)
a=str_split_fixed(h_1$WORKSITE, ",", 2)
h_position=data.frame(a)
names(h_position)[1] <- "City"
names(h_position)[2] <- "State"
library(dplyr)
h_1=h_1%>%mutate(CITY=h_position$City,STATE=h_position$State)
##map
##idea from:https://gist.github.com/cdesante/4252133
levels(h_1$STATE) <- tolower(levels(h_1$STATE))
w=table(h_1$STATE)
t = as.data.frame(w)
names(t)[1] = 'region'
library(maps)
library(ggplot2)
library(ggmap)
all_states <- map_data("state")
all_states$count <- t$Freq[match(all_states$region, t$Var1)]
## HERE is the problem:
##cannot merage 'all_states' and 't' on 'region'.
Total <- merge(all_states,t, by=c("region"),all= T)

下面是我得到的结果:
Screen Shot 2017-12-06 at 2.12.48 PM.png

最佳答案

jiangbeilu 查看完整内容

这个当然不会匹配上咯 你不觉得,第1个dataframe里面的region每个前面都有个 空格 么?这两个根据就不一个地方呀 用gsub把空格替换掉吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-12-7 03:15:03
这个当然不会匹配上咯
你不觉得,第1个dataframe里面的region每个前面都有个 空格 么?这两个根据就不一个地方呀
用gsub把空格替换掉吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-7 06:46:21
看一下你的两个region是否都是字符变量。
merge里面有几个参数可以设置的,你设置ALL的时候,就是显示所有的记录的,包括没有匹配上的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-7 07:18:00
jiangbeilu 发表于 2017-12-7 06:46
看一下你的两个region是否都是字符变量。
merge里面有几个参数可以设置的,你设置ALL的时候,就是显示所有 ...
我刚看了一下,两个region都是character。还有就是,这两个dataframe一点都没匹配上
t长这样:
Screen Shot 2017-12-06 at 6.12.42 PM.png all_states长这样:
Screen Shot 2017-12-06 at 6.13.06 PM.png 我是希望merge完以后,所有的州都能有对应的freq显示。谢谢&#128591;!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-7 12:40:57
jiangbeilu 发表于 2017-12-7 11:56
这个当然不会匹配上咯
你不觉得,第1个dataframe里面的region每个前面都有个 空格 么?这两个根据就不一 ...
太感谢了!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群