2015-10-19 80 views
1

我正在与​​合作,该图概述了美国各县的健康保险计划。对于每个计划有一排StateCounty列以及关于计划本身(溢价,抵扣等)的信息。识别由第二个变量区分的重复值

作为我的分析的一部分,我想将此​​与另一个包含人口统计信息的数据框(我们称之为“人口普查”)相关联,每个County。我计划在match()使用County名称共享两个data.tables和FIPS ID(地理联邦标识符)。

在开始第二步(match())之前,我需要检查各个州的“常见”县名 - 即在爱荷华州和北达科他州(以及内布拉斯加州)都有一个苏族郡县)。如果我找不到解决办法,我可能会错误地输入FIPS ID和“人口普查”信息。

sioux <- hi[hi$County == "Sioux",] 

sioux[26:31,1:3] 

     State County Metal.Level 
15407 IA Sioux  Platinum 
15408 IA Sioux Catastrophic 
15409 IA Sioux  Silver 
46129 ND Sioux  Silver 
46130 ND Sioux  Silver 
46131 ND Sioux   Gold 

看来unique(),将工作做好,但鉴于CountyState是在单独的列,不知道如何指定我正在寻找在不同状态下的同名县。

+0

你为什么不创造出既融合州,县名称为'paste0一个新的变量(州,县,九月=“ - ”)'...然后执行一个独特的比赛......这将创造'爱荷华苏族'和'北达科他苏族'作为不同的价值...... – Gaurav

+0

所以这将是'hi $ state_county < - paste0(嗨$状态,嗨$县,sep =“ - ”)'.. 。然后跟随'unique()' – Gaurav

+0

任何(真实)数据进行测试?你可以用'dput'将它们粘贴在这里吗? –

回答

0

除了在评论中提供的建议之外,还可以使用以下代码制作独特的州,郡对的数据框。

library(dplyr) 
sioux %>% distinct(State, County) 

如果你想列出所有县而不只是一个县,你可以做以下事情。

#creates a data frame with two county names "Sioux" and "Countyx" 
counties <- structure(list(State = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 2L 
), .Label = c("IA", "ND"), class = "factor"), County = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 2L), .Label = c(" Sioux", " Countyx"), class = "factor"), 
    Metal.Level = structure(c(4L, 5L, 2L, 2L, 2L, 1L, 3L), .Label = c("   Gold", 
    "  Silver", "  Silver", "  Platinum", " Catastrophic" 
    ), class = "factor")), .Names = c("State", "County", "Metal.Level" 
), class = "data.frame", row.names = c(NA, -7L)) 


#Find the distinct State Country pairs, then filter out all Country names that only appear 1. 

counties %>% distinct(State, County) %>% group_by(County) %>% 
    filter(n()>1) 
相关问题