如何用 r 中的 NA 替换我的数据框某些列的非正值
How to replace non-positive values of some columns of my dataframe with NA in r
我有一个数据框,我想将 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
中进行更改的解决方案。
如果您对 dplyr
感到满意,可以在 mutate(across())
中使用 ifelse
语句。表示across
cyl
和disp
列,如果这两列的值为<= 5
,则将其替换为NA
。否则,保持原始值 (.x
).
请注意,这只会将结果输出到控制台 ,而不会 实际替换 mtcars
数据集。
library(dplyr)
mtcars %>% mutate(across(c(cyl, disp), ~ ifelse(.x <= 5, NA, .x)))
在base R中,你可以直接在dataframe上进行替换。
Nomi <- c("cyl", "disp")
df <- mtcars
df[Nomi][df[Nomi] <= 5] <- NA
df
我有一个数据框,我想将 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
中进行更改的解决方案。
如果您对 dplyr
感到满意,可以在 mutate(across())
中使用 ifelse
语句。表示across
cyl
和disp
列,如果这两列的值为<= 5
,则将其替换为NA
。否则,保持原始值 (.x
).
请注意,这只会将结果输出到控制台 ,而不会 实际替换 mtcars
数据集。
library(dplyr)
mtcars %>% mutate(across(c(cyl, disp), ~ ifelse(.x <= 5, NA, .x)))
在base R中,你可以直接在dataframe上进行替换。
Nomi <- c("cyl", "disp")
df <- mtcars
df[Nomi][df[Nomi] <= 5] <- NA
df