簡體   English   中英

如何在數據框的列中重新分配特定值?

[英]How do I reassign specific values within a column of a data frame?

我有一個數據框,其中一列是錯誤標記的大陸值,稱為美洲。 我想將美國和加拿大的所有值重新分配為北美,並將所有其他標記為美洲的值重新分配為南美洲。

for (i in g2$country){
   if (i == "United States") {
       g2$continent == 'North America"
   }
}

g2 <- g2 |> mutate("new" = ifelse(country %in% c("United States","Canada"),"North America","South America"))

如果您的國家/地區變量中有更多標簽,則應添加另一個 ifelse() 而不是“南美”

如果你想在一個 tidyverse 框架中工作,你可以使用 case_when:

g2 %>%
  mutate(continent = case_when(
              country %in% c("United States", "Canada", "Mexico") ~ "North America",
              TRUE ~ "South America")
         )

(那TRUE ~ "South America"case_when處理ELSE邏輯的方式。)

一個更通用的解決方案(如果您有超過 2 個大陸標簽)將構建一個字典 tibblecontinent_lookup,其中包含國家和continent_lookup的列,然后join其與您當前的g2 tibble 連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM