2
我試圖重新編碼一個由公認的國家組成的變量到我指定的區域。我試圖使用dplyr
將國家變量重新編碼爲區域來做多個if_else
聲明,但它變得非常可笑。做150多個國家重新編碼的更好方法?
我想通過幾個國家在矢量使用爲循環來和值更改爲新的東西,在下面的例子中,我想改變值df$country
匹配i
這一點,將其更改爲"Europe"
。這是我開發的代碼,似乎並不想工作。有一個更好的方法嗎?
df <- data.frame(country =c("Netherlands", "US", "Canada", "Frace", "Italy"),
ID=1:100)
i <- c("Netherlands", "France", "Italy")
n <- length(i)
for (i in n){
df$country[(df$country == i)] <- "Europe"
}
根據我如何更改格式,我得到了幾個不同的錯誤。看來沒有什麼可行的。
哇,這似乎工作的非常完美。如果我理解正確,你的代碼是: 1.要求df $ country的等級; 2.索引與我匹配的因子水平; 3.將比賽改爲「歐洲」。 你能解釋%管道中的%嗎?我在網上查了好幾遍,但找不到一個好的概述。 – elliot
@elliot如果有多個元素匹配,則可以使用'%in%'來返回邏輯向量。 '%level(df $ country)%in%i'返回一個邏輯向量,即TRUE/FALSE,我們根據該邏輯向量對'levels(df $ country)'進行子集分配,並將其分配給'Europe' – akrun
感謝!我幾個月來一直在努力克服這個問題。祝福你。 – elliot