假设我有一个 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
。例如,如果我想让 Kate
、Daria
和 Tom
的 mark
成为 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/