如何用带标签的增量键替换 NA 值?
玩具数据框:
data1 <- c(22,40,72,41,66,66,66)
key <- c(NA,"other",0,0,"other",0,"other")
df<- data.frame(data1,key)
df[df == 0] <- NA
我的 friend :
data1 key
1 22 <NA>
2 40 other
3 72 <NA>
4 41 <NA>
5 66 other
6 66 <NA>
7 66 other
我使用 dplyr 包制作 key 做了什么
library (dplyr)
df %>% mutate(key = paste0('id-', 1:n()))
我的结果:
data1 key
1 22 id-1
2 40 id-2
3 72 id-3
4 41 id-4
5 66 id-5
6 66 id-6
7 66 id-7
我想要的:保持“他人”的值(value)观
data1 key
1 22 id-1
2 40 other
3 72 id-2
4 41 id-3
5 66 other
6 66 id-4
7 66 other
最佳答案
首先将 df$key 转换为字符:
df$key <- as.character(df$key)
然后
df$key[is.na(df$key)] <- paste0('id-', 1:length(df$key[is.na(df$key)]))
> df$key
[1] "id-1" "other" "id-2" "id-3" "other" "id-4" "other"
或者,使用 dplyr:
library(dplyr)
df %>%
mutate(key = as.character(key),
key = ifelse(is.na(key), paste0('id-', 1:length(key[is.na(key)])),
key))
关于用带标签的增量键替换 NA 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37590063/