基于r中的非缺失单元值进行重新编码

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

我有一个数据集看起来像

   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

对于非缺失的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

我找不到集成的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给这些行的类别列,而不管当前值。这是你需要的吗?

扫码关注云+社区

领取腾讯云代金券