我在r工作,我想要的是制作一个表格或图表,代表每个参与者他们的缺失值。即我有4700多名参与者,每个问题有20到40个缺失。我想以这样一种方式代表失踪者,我可以看到谁是没有回答问题的人,可能看看是否有缺失值的模式。我做了以下事情:
sum(complete.cases(mydata))
sum(!complete.cases(mydata$Variable1))
which(!complete.cases(mydata$Variable1))
然后我得到了一个数字列表(我不太确定如何解释,起初我认为这些是患者数字,但后来我注意到情况并非如此。)
我也试过制作只有缺失的子集,但后来我只看到有多少缺失,但没有谁缺失来自。
有人能帮帮我吗?谢谢!
ZAS
答案 0 :(得分:1)
如果有一列可以区分data.frame mydata
中的一行表示患者编号patient_no
,那么您可以通过以下方式轻松找出患者的失踪人数:
> mydata <- data.frame(patient_no = 1:5, variable1 = c(NA,NA,1,2,3))
> mydata[!complete.cases(mydata$variable1),'patient_no']
[1] 1 2
如果您想考虑用户错过某个特定问题的模式,那么这可能对您有用:
假设:除第1列外,所有其他列代表与问题相关的列。
> lapply(mydata[,-1],function(x){mydata[!complete.cases(x),'patient_no']})
答案 1 :(得分:0)
请记住,R会自动将数字附加到数据集中的观察值。例如,如果您的数据有20个观察值(20行),则R将数字从1添加到20,这实际上不是原始数据的一部分。 它们是行号。 R代码生成的结果:which(!complete.cases(mydata$Variable1))
对应于这些数字。数字是您的数据集中至少有一个缺失数据(列)的行。