0

我有一个来自问卷调查的大数据集。将它从 SPSS 导入到 R(使用 SPSS 的 Stata-Output)给了我每个问题的答案作为因素。

一个问题的答案从 1 到 10。但是,有很多缺失值。R 也能识别它们。

但是,现在我想做一些计算 - 例如我想计算答案的平均值(不是很好的统计数据,我知道,没关系)。

所以我必须将因素重新编码为数字。我用as.numeric().

但是,现在我缺少编码为 11 到 14 的值。当然,我无法计算出任何这样的平均值。

将因子重新编码为数字并告诉 R 将任何大于 10 的值设置为 NA 的正确方法是什么?

例:你喜欢吃鱼吗?

    not at all                   very much | don't know  no answer  don't tell
R:  1   2   3   4   5   6   7   8   9   10 |     11          12         13
4

2 回答 2

4

让我们调用您的数据框data(您可能想先复制一份)。以下会将所有列中大于 10 的所有值设置为NA

data[data>10]<-NA

以上假设您已经申请了as.numeric.

于 2011-02-23T17:44:01.977 回答
3

如果你真的不需要缺失值,我会这样做:

a[a>10] <- NA

然后,您可以使用:

mean(a, na.rm=TRUE)

或者,如果您想解决这些缺失值,您可以使用:

mean(a[a<=10])
于 2011-02-23T17:44:27.887 回答