繁体   English   中英

如何根据缺失值在 R 中创建新列

[英]How to create new column in R based on missing values

我有以下数据

Sample_ID<-c("a1","a2","a3","a4","a5","a6")
Score<-c(100, 200, 300, 400, NA, NA)
DF<-data.frame(Sample_ID,Score)

如何创建一个名为Score_status的新变量,其中所有具有 NA(缺失值)的样本将被编码为 0,而那些具有分数的样本将被编码为 1。我正在寻找以下 output。

Sample_ID     Score    Score_status
a1             100      1
a2             200      1
a3             400      1
a4             NA       0
a5             NA       0

如何在 R 中执行此操作。

你可以试试:

DF$Score_status <- ifelse(is.na(DF$Score),0,1)

  Sample_ID Score Score_status
1        a1   100            1
2        a2   200            1
3        a3   300            1
4        a4   400            1
5        a5    NA            0
6        a6    NA            0
DF$Score_status <- 1
DF$Score_status[is.na(DF$Score)] <- 0

#   Sample_ID Score Score_status
# 1        a1   100            1
# 2        a2   200            1
# 3        a3   300            1
# 4        a4   400            1
# 5        a5    NA            0
# 6        a6    NA            0

您可以使用transform ,并使用+.is.na转换为二进制数。

DF <- transform(DF, Score_status=+!is.na(Score))
DF
#   Sample_ID Score Score_status
# 1        a1   100            1
# 2        a2   200            1
# 3        a3   300            1
# 4        a4   400            1
# 5        a5    NA            0
# 6        a6    NA            0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM