基于 r 中非缺失单元格值的重新编码
recoding based on non missing cell value in r
我的数据集看起来像
df1 <- data.frame(Id=c(1L,2L,3L,4L,5L),pricetag=c(NA,5,NA,3,NA),category=c(NA,"Z",NA,NA,"Y"),stringsAsFactors=F)
> df1
Id pricetag category
1 1 NA NA
2 2 5 Z
3 3 NA NA
4 4 3 NA
5 5 NA Y
对于非缺失的价格标签值,我想将类别变量重新编码为 "X"。所以我看起来像这样。
> df1
Id pricetag category
1 1 NA NA
2 2 5 X
3 3 NA NA
4 4 3 X
5 5 NA Y
我想不出 ifelse()
集成了 !is.na()
的函数。
有什么想法吗?
transform(df1, category = replace(category, !is.na(pricetag), "X"))
# Id pricetag category
#1 1 NA <NA>
#2 2 5 X
#3 3 NA <NA>
#4 4 3 X
#5 5 NA Y
df1 <- data.frame(Id=c(1L,2L,3L,4L,5L),pricetag=c(NA,5,NA,3,NA),category=c(NA,"Z",NA,NA,"Y"),stringsAsFactors=F)
> df1
Id pricetag category
1 1 NA <NA>
2 2 5 Z
3 3 NA <NA>
4 4 3 <NA>
5 5 NA Y
> df1$category[which(!is.na(df1$pricetag))] <- 'X'
> df1
Id pricetag category
1 1 NA <NA>
2 2 5 X
3 3 NA <NA>
4 4 3 X
5 5 NA Y
which
调用识别 df1
中不为 NA 的行,然后将 X
分配给这些行的类别列,而不考虑当前值。这是你需要的吗?
我的数据集看起来像
df1 <- data.frame(Id=c(1L,2L,3L,4L,5L),pricetag=c(NA,5,NA,3,NA),category=c(NA,"Z",NA,NA,"Y"),stringsAsFactors=F)
> df1
Id pricetag category
1 1 NA NA
2 2 5 Z
3 3 NA NA
4 4 3 NA
5 5 NA Y
对于非缺失的价格标签值,我想将类别变量重新编码为 "X"。所以我看起来像这样。
> df1
Id pricetag category
1 1 NA NA
2 2 5 X
3 3 NA NA
4 4 3 X
5 5 NA Y
我想不出 ifelse()
集成了 !is.na()
的函数。
有什么想法吗?
transform(df1, category = replace(category, !is.na(pricetag), "X"))
# Id pricetag category
#1 1 NA <NA>
#2 2 5 X
#3 3 NA <NA>
#4 4 3 X
#5 5 NA Y
df1 <- data.frame(Id=c(1L,2L,3L,4L,5L),pricetag=c(NA,5,NA,3,NA),category=c(NA,"Z",NA,NA,"Y"),stringsAsFactors=F)
> df1
Id pricetag category
1 1 NA <NA>
2 2 5 Z
3 3 NA <NA>
4 4 3 <NA>
5 5 NA Y
> df1$category[which(!is.na(df1$pricetag))] <- 'X'
> df1
Id pricetag category
1 1 NA <NA>
2 2 5 X
3 3 NA <NA>
4 4 3 X
5 5 NA Y
which
调用识别 df1
中不为 NA 的行,然后将 X
分配给这些行的类别列,而不考虑当前值。这是你需要的吗?