简体   繁体   English

在R数据框上添加具有NA值的列

[英]Adding a column on R dataframe with NA values

I have a data frame name df on R: 我在R上有一个数据框名称df:

    a                       b           c   d
1   BR073ELAC5EIANID-115781 2014-04-14  7   3   
2   BR073ELAC5EIANID-115781 2014-04-15  NA  NA  
3   BR073ELAC5EIANID-115781 2014-04-16  6   3   
4   BR073ELAC5EIANID-115781 2014-04-17  5   2   
5   BR073ELAC5EIANID-115781 2014-04-18  2   3   

And I would like to add a column equal to 1 if column c = NA and if column d = NA I try the following : 如果列c = NA,列d = NA,我想添加等于1的列,请尝试以下操作:

df$e <- (if(is.na(df$c) && is.na(df$d)) 1 else 0)

but I get all the column e equal to 1 但我得到的所有列e等于1

You can avoid ifelse , just use & 您可以避免ifelse ,只需使用&

> df$e <- 1*(is.na(df$c) & is.na(df$d))
> df
                        a          b  c  d e
1 BR073ELAC5EIANID-115781 2014-04-14  7  3 0
2 BR073ELAC5EIANID-115781 2014-04-15 NA NA 1
3 BR073ELAC5EIANID-115781 2014-04-16  6  3 0
4 BR073ELAC5EIANID-115781 2014-04-17  5  2 0
5 BR073ELAC5EIANID-115781 2014-04-18  2  3 0

Here's one approach using logical indexing: 这是使用逻辑索引的一种方法:

as.numeric(is.na(df$c) & is.na(df$d))

## [1] 0 1 0 0 0

Or 要么

df$e <- 1*(rowSums(is.na(df[,3:4]))==2)
 df$e
 #[1] 0 1 0 0 0

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

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