使用函数在R中创建标志变量

使用函数在R中创建标志变量,r,function,dataframe,na,R,Function,Dataframe,Na,我想在R中创建一个函数,它将输出从数据帧中的原始变量派生的标志变量,然后理想地为数据帧中的每个变量 我想为数据帧中的每个变量创建一个新变量,如果原始变量值为NA,则该值将等于1;如果不是NA,则该值将等于0 我还想用与原始变量相同的方法调用新变量,只是在它前面加上前缀“M_2;” 以下是一个例子: INDEX HEIGHT LENGTH 1 70 55 2 60 NA 3 NA 35 4 NA

我想在R中创建一个函数,它将输出从数据帧中的原始变量派生的标志变量,然后理想地为数据帧中的每个变量

我想为数据帧中的每个变量创建一个新变量,如果原始变量值为NA,则该值将等于1;如果不是NA,则该值将等于0

我还想用与原始变量相同的方法调用新变量,只是在它前面加上前缀“M_2;”

以下是一个例子:

INDEX   HEIGHT    LENGTH
1       70        55
2       60        NA
3       NA        35
4       NA        NA
我希望输出如下所示:

INDEX   HEIGHT  M_HEIGHT  LENGTH  M_LENGTH
1       70      0         55      0
2       60      0         NA      1
3       NA      1         35      0
4       NA      1         NA      1
我目前正在对每个变量单独执行此操作,但我希望加快速度,而不必反复重复相同的操作

df$M_HEIGHT <- ifelse(is.na(HEIGHT),1,0)

df$M_HEIGHTThe“[学习格式化代码块…SO接口很简单。谢谢你!这正是我想要的。
> dat[ , paste0( "M_",names(dat)[-1])] <- 
       lapply(dat[-1], function(x) as.numeric(is.na(x)) )
> dat
  INDEX HEIGHT LENGTH M_HEIGHT M_LENGTH
1     1     70     55        0        0
2     2     60     NA        0        1
3     3     NA     35        1        0
4     4     NA     NA        1        1