我正在为一个调查数据做一些数据操作,这简直要了我的命…这就是我所遇到的。我得到了两个数据框,df1是调查数据,df2是每个被调查者的问题访问历史。1 =被调查者访问了问题,0 =被调查者没有访问问题。我想做的是区分调查数据中被调查者拒绝回答导致的NA和被调查者没有访问问题导致的NA。我希望实现的逻辑是
if df2$var == 0, then df1$var <- "does not apply"
数据帧的结构如下:
df1:调查数据
<表类>ID var1 var2 var3 var4 tbody><<tr>1 NA 2b NA b b 3 c c NA c 4NA d NA d 表类>
如果您可以匹配您希望直接比较的df1
和df2
的块,则不需要循环:
cols <- c("var1","var2","var3")
df1[cols][df2[cols]==0] <- "Does Not Apply"
## ID var1 var2 var3 var4
##1 1 a a Does Not Apply a
##2 2 b Does Not Apply b b
##3 3 c c <NA> c
##4 4 Does Not Apply d Does Not Apply d