【发布时间】:2013-03-12 21:48:03
【问题描述】:
我有一个包含如下调查结果的数据框:
Q1 Q2 Q3
1 Agree No opinion Disagree
2 No opinion No opinion Disagree
3 Agree Disagree
如何将调查回复转换为数字,以便获得每个问题的平均回复?我可以使用 gsub 为每列中的每个文本答案替换数值,但必须有更好的方法。
> str(x)
'data.frame': 3 obs. of 3 variables:
$ Q1: Factor w/ 2 levels "Agree","No opinion": 1 2 1
$ Q2: Factor w/ 2 levels "","No opinion": 2 2 1
$ Q3: Factor w/ 1 level "Disagree": 1 1 1
【问题讨论】:
-
sapply(data, as.integer)怎么样? -
@TheodoreLytras 这对他们的数据结构做了很多假设。因素与性格,即使是因素,我们也不知道等级的顺序。
-
@outis 为什么不在这里使用
table? -
@agstudy 因为显然他们认为如果我同意某事而你不同意,作为一个群体,我们没有意见。 ;)
-
通过
dput(head())分享您的数据或向我们展示str()的输出。
标签: r