我有一個資料框,我想分配NA給特定列的非正值。
我將嘗試使用資料框實作一個最小的可重現示例,在該示例mtcars中我將嘗試更改NA兩列的值,cyl即disp<= 5。
library(dplyr)
view(mtcars)
Nomi <- c("cyl", "disp")
for(i in Nomi) {
mtcars$i[mtcars$i <= 5] <- NA
}
Nomi 是帶有mtcars列名的向量,我想用NA.
我不完全理解我收到的錯誤訊息,我想找到一個可以在NA.
uj5u.com熱心網友回復:
在基礎 R 中,您可以直接對資料框進行替換。
Nomi <- c("cyl", "disp")
df <- mtcars
df[Nomi][df[Nomi] <= 5] <- NA
df
uj5u.com熱心網友回復:
如果你覺得舒服dplyr,你可以使用 in 中的ifelse陳述句mutate(across())。表示across cyl和disp列,如果這兩列的值為 ,則<= 5替換為NA。否則,保留原始值 ( .x)。
請注意,這只會將結果輸出到控制臺,而不會實際替換mtcars資料集。
library(dplyr)
mtcars %>% mutate(across(c(cyl, disp), ~ ifelse(.x <= 5, NA, .x)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/443151.html
