2015-10-19 74 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) 
相關問題