在R dataframe上添加具有NA值的列

在R dataframe上添加具有NA值的列,r,na,R,Na,我在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

我在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   
如果列c=NA,如果列d=NA,我想添加一个等于1的列 我尝试以下方法:

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

df$e这里有一种使用逻辑索引的方法:

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

## [1] 0 1 0 0 0

这里有一种使用逻辑索引的方法:

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

## [1] 0 1 0 0 0

您可以避免使用
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
>df$e df
a、b、c、d、e
1 BR073ELAC5EIANID-115781 2014-04-14 7 3 0
2 BR073ELAC5EIANID-115781 2014-04-15 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

你可以避免
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
>df$e df
a、b、c、d、e
1 BR073ELAC5EIANID-115781 2014-04-14 7 3 0
2 BR073ELAC5EIANID-115781 2014-04-15 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

df$e或

df$e
df$e
df$e