在R中添加一个新列,其中包含存在/不存在信息

在R中添加一个新列,其中包含存在/不存在信息,r,R,Hel lo I有一个数据帧,例如: Col1 Col2 A 23 B NA C 21 D 2 E NA F 9 我想添加一个新的Col3,带有出席/缺席信息(1/0) 如果col2中的数字>=1,则我将其设为1 如果我把0 并获得: Col1 Col2 Col3 A 23 1 B NA 0 C 21 1 D 2 1 E NA 0 F 9 1 如果col2大于等于1且不是NA,则可以将Col3赋值为1 df$Col3 <- +(df$Col2 >= 1 & !is.na(

Hel lo I有一个数据帧,例如:

Col1 Col2
A 23
B NA
C 21
D 2
E NA
F 9
我想添加一个新的Col3,带有出席/缺席信息(1/0) 如果col2中的数字>=1,则我将其设为1 如果我把0

并获得:

Col1 Col2 Col3
A 23 1
B NA 0
C 21 1
D 2 1
E NA 0
F 9 1

如果
col2
大于等于1且不是
NA
,则可以将
Col3
赋值为1

df$Col3 <- +(df$Col2 >= 1 & !is.na(df$Col2)) 
df

#  Col1 Col2 Col3
#1    A   23    1
#2    B   NA    0
#3    C   21    1
#4    D    2    1
#5    E   NA    0
#6    F    9    1

如果
col2
大于等于1且不是
NA
,则可以将
Col3
赋值为1

df$Col3 <- +(df$Col2 >= 1 & !is.na(df$Col2)) 
df

#  Col1 Col2 Col3
#1    A   23    1
#2    B   NA    0
#3    C   21    1
#4    D    2    1
#5    E   NA    0
#6    F    9    1

另一种整洁的方式可能是

library(dplyr)
mutate(df,
   Col3 = ifelse(Col2 %in% NA,0,1)
   )

另一种整洁的方式可能是

library(dplyr)
mutate(df,
   Col3 = ifelse(Col2 %in% NA,0,1)
   )

我们可以使用
dplyr

library(dplyr)
df %>%
    mutate(Col3 = as.integer(Col2 >=1 & !is.na(Col2)))
#  Col1 Col2 Col3
#1    A   23    1
#2    B   NA    0
#3    C   21    1
#4    D    2    1
#5    E   NA    0
#6    F    9    1
数据
df我们可以使用
dplyr

library(dplyr)
df %>%
    mutate(Col3 = as.integer(Col2 >=1 & !is.na(Col2)))
#  Col1 Col2 Col3
#1    A   23    1
#2    B   NA    0
#3    C   21    1
#4    D    2    1
#5    E   NA    0
#6    F    9    1
数据
df