另一个愚蠢的请求。我正在尝试使用重新编码的变量创建列联表,其中任何答案都编码为“1”,非答案编码为“0”。
我的原始数据可能看起来像这样:一些变量是从字符串重新编码的,而另一些是从数字重新编码的。
id var1 recode var2 recode2 ... var250 recode250
1 "hello" 1 1 1 ...
2 "hi" 1 <NA> 0 ...
3 0 <NA> 0 ...
4 "hola" 1 1 1 ...
我已经编写了一些代码来对字符串进行重新编码,我使用列联表进行检查。
data$recode <- ifelse((as.numeric(data$var1)!=1), 1, 0) #RECODES STRINGS
table(data$recode)
0 1
1 3
但是,我还需要将所有其他变量中的 NA 重新编码为 0。我尝试使用另一个 ifelse 语句来做到这一点:
data <- ifelse(is.na(data), 0, 1)
这些值似乎发生了变化,但现在当我尝试运行相同的列联表时,我收到以下错误消息:
Error in data$recode : $ operator is invalid for atomic vectors
手头的关键问题是我需要能够为我的所有变量(即报告百分比和频率)生成列联表,因此有助于如何正确地将我的所有 NA(在一系列列内)重新编码为 0 所以会很有帮助。谢谢!