我的函式將從用戶那里獲取資料和列名。
列名只能像 :column或my column(即,如果列名是多個單詞,則沒有 "" 的唯一反引號)
在我的部分功能中,我需要檢查該列中的缺失值并將它們替換為“missed”。
myfun <- function(data, column){
library(tidyverse)
data <- as.tibble(data)
data %>%
mutate(across(.cols = {{column}}, .fns = as.character)) %>%
replace_na(list({{columns}} = "missed"))
}
new_df <- airquality %>%
myfun(Ozone)
我以前使用{{}}過,傳遞列名(如上面的空氣質量示例)沒有問題。現在在我的實際功能的一部分,我需要替換 na s 。上述格式不適用于 replace_na() 。
知道如何解決這個問題嗎?
uj5u.com熱心網友回復:
我認為您需要replace_na()在mutate(). 如果您使用與將列轉換為字符相同的策略,這似乎可以解決問題:
myfun <- function(data, column){
library(tidyverse)
data <- as_tibble(data)
data %>%
mutate(across(.cols = {{column}}, .fns = ~ replace_na(as.character(.x), "missed")))
}
new_df <- airquality %>%
myfun(Ozone)
輸出:
> head(new_df)
# A tibble: 6 × 6
Ozone Solar.R Wind Temp Month Day
<chr> <int> <dbl> <int> <int> <int>
1 41 190 7.4 67 5 1
2 36 118 8 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 missed NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480396.html
上一篇:如何在R中使用pivot_longer()按類別將列分成多行?
下一篇:在R中合并excel檔案
