0

我在 r 工作,我想要做的是制作一个表格或图表,代表每个参与者的缺失值。即,我有 4700 多名参与者,每个问题都有 20 -40 个缺失。我想以这样一种方式表示缺失,以便我可以看到谁是没有回答问题的人,并可能查看缺失值中是否存在模式。我做了以下事情:

名为“数据”的数据框中的完整案例计数

sum(complete.cases(mydata))

不完整案例数

sum(!complete.cases(mydata$Variable1)) 

哪些案例(行号)不完整?

which(!complete.cases(mydata$Variable1))

然后我得到了一个数字列表(我不太清楚如何解释,起初我以为这些是病人的数字,但后来我注意到事实并非如此。)

我还尝试制作仅包含缺失的子集,但后来我只看到有多少缺失而不是缺失来自

有人可以帮我吗?谢谢!

扎斯

4

2 回答 2

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']})
于 2016-04-14T12:50:01.117 回答
0

请记住,R 会自动将数字附加到数据集中的观察值。例如,如果您的数据有 20 个观察值(20 行),R 会附加 1 到 20 之间的数字,这实际上不是原始数据的一部分。它们是行号。R代码产生的结果:which(!complete.cases(mydata$Variable1))对应于那些数字。数字是数据集中至少有一个缺失数据(列)的行。

于 2017-05-23T10:56:40.930 回答