簡體   English   中英

使用 dplyr 將新列添加到 R 中的數據框

[英]Add new column to dataframe in R using dplyr

感謝 StackOverflow 中的輸入,我想出了如何根據條件向現有數據框添加列。

當我運行此代碼塊時

testmain %>% 
  mutate(wealth = case_when(.$savings_1 == "0" & .$savings_5 == "0" ~ "No savings",
                            .$savings_1 == "1" & .$savings_5 == "0" ~ "1,000 Sh savings",
                            .$savings_1 == "1" & .$savings_5 == "1" ~ "5,000 Sh savings",
                            .$savings_1 == "0" & .$savings_5 == "1" ~ "Special case"))

“結果”顯示在預覽窗口中(我正在用 R 編寫 Markdown 文件)。 此結果包含我新添加的變量wealth 見最后一欄

當我隨后運行代碼View(testmain)來查看數據View(testmain)時,新變量不存在。 誰能給我一個關於我做錯了什么的提示?

您需要將結果分配給某些東西。

例如,

testmain2 <- testmain %>%
  mutate(wealth = case_when(.$savings_1 == "0" & .$savings_5 == "0" ~ "No savings",
                            .$savings_1 == "1" & .$savings_5 == "0" ~ "1,000 Sh savings",
                            .$savings_1 == "1" & .$savings_5 == "1" ~ "5,000 Sh savings",
                            .$savings_1 == "0" & .$savings_5 == "1" ~ "Special case"))

然后View(testmain2)應該顯示添加的列。

旁注:建議在case_when有一個默認值。 您可以通過添加來做到這一點

case_when(
  x == y   ~ z,
  TRUE     ~ somedefaultvalue
)

暫無
暫無

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

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