📅  最后修改于: 2023-12-03 15:07:47.497000             🧑  作者: Mango
有时在 R 的 DataFrame 中,我们需要对一些值进行替换。一种常见的替换行为是将 0 替换为 NA。下面是几种实现这种替换的方法。
ifelse
函数在 R 语言中实现 “if-else” 条件语句。
df <- data.frame(x = c(1, 2, 0, 4, 0, 6))
df$x <- ifelse(df$x == 0, NA, df$x)
df
输出结果:
x
1 1
2 2
3 NA
4 4
5 NA
6 6
apply()
函数很强大,可以对数据矩阵、DataFrame 进行计算和运算。同时,lapply()
也是一个很常用的函数,能够将一个函数作用于一个列表上,返回一个包含函数结果的列表。
下面是一个用 lapply() 函数将 0 替换为 NA 的示例:
df <- data.frame(x = c(1, 2, 0, 4, 0, 6))
df[] <- lapply(df, function(x) {
x[x==0] <- NA
return(x)
})
df
输出结果:
x
1 1
2 2
3 NA
4 4
5 NA
6 6
dplyr
是一组 R 语言的包,最初由 Hadley Wickham 开发,它提供了一个语义清晰、一致和直观的语言,来进行数据转换和操作。
下面是一个使用 dplyr
包的示例:
library(dplyr)
df <- data.frame(x = c(1, 2, 0, 4, 0, 6))
df <- df %>% mutate(x = ifelse(x == 0, NA, x))
df
输出结果:
x
1 1
2 2
3 NA
4 4
5 NA
6 6
以上三种方法均可对 R DataFrame 中的 0 进行 NA 替换,选择何种方法仍需根据实际情况和个人喜好进行选择。