我有一個具有完整狀態名稱的變量狀態的大文件。我想用狀態縮寫(即「紐約」中的「NY」)替換它。有沒有簡單的方法來做到這一點(除了使用幾個if-else命令)?可能使用「替換」語句?謝謝。州名縮寫爲R
州名縮寫爲R
回答
1)grep
從state.name
的全名,並使用該索引到state.abb
:
state.abb[grep("New York", state.name)]
## [1] "NY"
2)或創建的州縮寫的向量其名稱是使用全名的全名和索引:
setNames(state.abb, state.name)["New York"]
## New York
## "NY"
與(1)不同,即使「紐約」被完整狀態名稱的向量(例如, setNames(state.abb, state.name)[c("New York", "Idaho")]
R有兩個內置常量可能有幫助:state.abb
帶有縮寫,state.name
帶有全名。下面是一個簡單的使用例如:
> x <- c("New York", "Virginia")
> state.abb[match(x,state.name)]
[1] "NY" "VA"
非常感謝。這節省了我30分鐘的時間在R中編寫了50條if-else語句。 – user227290 2011-03-23 22:07:36
@ user227290:如果你在考慮ifelse,那麼看看'?switch'可能是明智的。永遠不要知道它將來何時可能會派上用場。 – 2011-03-24 01:10:59
假設華盛頓哥倫比亞特區被格式化爲哥倫比亞特區,我認爲'c(state.abb,'DC')[match(x,c(state.name,'哥倫比亞特區'))]'也可以工作 – sbha 2018-02-01 20:29:18
我發現內置的state.name和state.abb只有50個狀態。我從在線(例如,這個鏈接:http://www.infoplease.com/ipa/A0110468.html)得到了一張更大的表(包括DC等),並將其粘貼到名爲States.csv的.csv文件中。然後我加載狀態和縮寫。從這個文件而不是使用內置的。其餘的是神似@Aniko的
library(dplyr)
library(stringr)
library(stringdist)
setwd()
# load data
data = c("NY", "New York", "NewYork")
data = toupper(data)
# load state name and abbr.
State.data = read.csv('States.csv')
State = toupper(State.data$State)
Stateabb = as.vector(State.data$Abb)
# match data with state names, misspell of 1 letter is allowed
match = amatch(data, State, maxDist=1)
data[ !is.na(match) ] = Stateabb[ na.omit(match) ]
有一個在他們如何計算距離從一個詞到另一場比賽和amatch之間的微小差異。見這裏P25-26 http://cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_R.pdf
- 1. 州名到縮寫使用R
- 2. MKPlacemark:在AdministrativeArea中返回美國州名縮寫
- 3. 獲取region_id來自州縮寫 - Magento 1.4.2
- 4. Stata含糊縮寫r(111)
- 5. 德爾福 - 有沒有更好的方式來獲得州名縮寫
- 6. 跳過縮寫月份名稱爲月
- 7. R:州和縣概述choroplethrZip
- 8. 拼寫檢查後從SOLR查詢中提取國家,州,城市或州名
- 9. 縮寫爲
- 10. 如何填寫美國州的特定縣R
- 11. 爲國家獲取重複的州名
- 12. C#屬性名稱縮寫
- 13. 縮寫或完整名稱?
- 14. 爲城市/州
- 15. 廣播州名角JS $ stateChangeStart
- 16. Android的天氣預報緯度/龍getAdminArea()返回全州的名字不是縮寫
- 17. 加入「縮寫爲Emacs
- 18. Bootstrap表僅縮寫爲xs
- 19. C#縮寫詞的命名約定
- 20. 在駝峯類名中代表縮寫
- 21. 如何在C中縮寫全名?
- 22. 爲國家名稱縮寫的資源,語言
- 23. 如何將時區全名翻譯爲tz縮寫?
- 24. 我們應該爲python變量名使用哪種縮寫?
- 25. R:寫RasterStack和保留層名稱
- 26. 專有名詞檢測首字母縮寫詞縮略語
- 27. 排序從最高到最低,爲前三名,在每個州
- 28. 如何運行用.r擴展名編寫的r程序?
- 29. 按州和名稱獲取作業?
- 30. 德克薩斯州名單列表
這個工作當grep的第一個參數是一個字符串向量嗎? – user227290 2011-03-23 22:09:53
不,在這種情況下,使用'match'來代替Aniko建議的'grep',或嘗試'setNames(state.abb,state.name)[c(「New York」,「Idaho」)]''。 – 2011-03-23 22:38:48
謝謝,它澄清了這個問題。 – user227290 2011-03-24 21:09:35