将数据框中的某些值替换为 NA

标签 r dataframe na

假设我有一个 data.frame

names  <- c("John", "Mark", "Larry", "Will", "Kate", "Daria", "Tom")
gender <- c("M", "M", "M", "M", "F", "F", "M")
mark <- c(1, 2, 3, 1, 2, 3, 1)
df <- data.frame(names, gender, mark)
df

  names gender mark
1  John      M    1
2  Mark      M    2
3 Larry      M    3
4  Will      M    1
5  Kate      F    2
6 Daria      F    3
7   Tom      M    1

我不知道如何将某些值替换为 NA。例如,如果我想让 KateDariaTommark 成为 NA:

  names gender mark
1  John      M    1
2  Mark      M    2
3 Larry      M    3
4  Will      M    1
5  Kate      F    NA
6 Daria      F    NA
7   Tom      M    NA

最佳答案

尝试

df <- within(df, mark <- replace(mark, names %in% c('Kate', 'Daria', 'Tom'), NA))
df
#    names gender mark
#1  John      M    1
#2  Mark      M    2
#3 Larry      M    3
#4  Will      M    1
#5  Kate      F   NA
#6 Daria      F   NA
#7   Tom      M   NA

或者

 df$mark[df$names %in% c('Kate', 'Daria', 'Tom')] <- NA

或者

 is.na(df$mark) <- df$names %in% c('Kate', 'Daria', 'Tom')

关于将数据框中的某些值替换为 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30899311/

相关文章:

r - 在 R 中填充矩阵的更快方法

R - 在给定半径内寻找最近的相邻点和相邻点的数量,坐标经纬度

python - 最接近 R nlminb 的 Python scipy 求解器模拟?

python - 操作 pandas 数据框

r - ggplot2:geom_point 有时会根据使用的审美删除 NA 值

r - 当数据中没有缺失值时通过强制引入 NAs - R

r - 对于数据框中的多列,在 R 中从宽变长

python - 将不同 DataFrame 中的元素收集到数组中

python - 在 bin 中花费的时间的分箱和总和

使用过滤器按组将 NA 值替换为平均值