如何用带标签的增量键替换NA值?
玩具data.frame:
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我的d.f:
data1 key
1 22 <NA>
2 40 other
3 72 <NA>
4 41 <NA>
5 66 other
6 66 <NA>
7 66 other我用dplyr包做了什么
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我想要的:保持“别人”的价值观
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发布于 2016-06-02 11:10:58
首先将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))发布于 2016-06-02 11:16:58
使用累积量和变异:
library(dplyr)
df %>%
mutate(key = ifelse(is.na(key), paste("id", sep = "-", cumsum(is.na(key))),
as.character(key)))https://stackoverflow.com/questions/37590063
复制相似问题