我有一個資料框,其中一個欄位包含地理名稱或短語 (locality.curated),以及一個對應的欄位,其中包含這些地區的縮寫代碼 (convert),但并非所有縮寫都已填充,有些是 NA。我想通過匹配 locality.curated 中的關鍵字來向轉換欄位添加縮寫,但如果轉換欄位已被占用,則不會覆寫它。
即:如果 convert = NA AND locality curated = "Delaware" 然后將 "USA" 粘貼到 curated。
我已經嘗試了 ifelse 和 if 的各種排列,但要么無法獲得正確的語法,要么就像我在下面的最新嘗試一樣,似乎沒有修改資料框。
if(is.na(test$convert) && grepl("Delaware", test$locality.curated, value=T)) {paste("USA", test$convert)}
虛擬資料,輸入:
test <- data.frame(locality.curated=c("Canada to Delaware River", "California", "Delaware", "Wilmington Delaware", "Alaska"), convert=c("CAN","USA", "USA",NA,NA))
所需的輸出:
test.out <- data.frame(locality.curated=c("Canada to Delaware River", "California", "Delaware", "Wilmington Delaware", "Alaska"), convert=c("CAN","USA", "USA","USA",NA))
非常感謝!
uj5u.com熱心網友回復:
test$new <- ifelse(is.na(test$convert) & grepl(pattern = "Delaware", x = test$locality.curated),
yes = "USA",
no = test$convert)
1 Canada to Delaware River CAN CAN
2 California USA USA
3 Delaware USA USA
4 Wilmington Delaware <NA> USA
5 Alaska <NA> <NA>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325669.html
