【发布时间】:2017-11-22 16:08:10
【问题描述】:
目标:根据另一列的值向列添加 NA。例如,如果我有一个包含五列的数据集(一个 ID 列和四个二进制变量:caseID、var1、var2、var3、nocasedata),我如何评估“nocasedata”中的数据以确定 TRUE(无数据)或FALSE(数据),然后删除该列并为其他三个变量分配 NA(如果为 TRUE)或不执行任何操作(如果为 FALSE)到该案例的整行。 (首选 tidyverse 工具,但不是必需的。)
可重现的例子:
df <- data.frame(caseID = c(1:5),
var1 = c(1, 0, 0, 1, 1),
var2 = c(0, 0, 1, 1, 0),
var3 = c(0, 0, 0, 1, 1),
nocasedata = c(0, 1, 0, 0, 0))
df
desired_df <- data.frame(caseID = c(1:5),
var1 = c(1, NA, 0, 1, 1),
var2 = c(0, NA, 1, 1, 0),
var3 = c(0, NA, 0, 1, 1))
desired_df
【问题讨论】:
-
试试
df[[df$nocasedata==1,2:4] <- NA