我正在努力解决如何最好地构建困惑的分类数据,这些数据来 self 需要清理的 dataset。
编码方案
我正在分析大学科学类(class)考试的数据。我们正在研究模式 学生的 react ,我们开发了一个编码方案来表示事物的种类 学生们正在做他们的答案。编码方案的一个子集如下所示。
请注意,在每个主要代码(1、2、3)中都有嵌套的非唯一子代码(a、b、...)。
原始数据是什么样的
我创建了我的实际数据的匿名原始子集,您可以查看 here 。
我的部分问题是那些编码数据的人注意到一些学生显示
多种模式。编码人员的解决方案是创建足够多的列(reason1
、reason2
、
...) 以容纳具有多种模式的学生。这变得很重要,因为订单
(reason1
, reason2
) 是任意的——两个学生(比如我的学生 41 和学生 42
dataset )正确应用“依赖”的人都应该在分析中注册,无论
3a
出现在 reason
列还是 reason2
列。
如何最好地构建学生数据?
我的部分问题是在 raw data 中,并非所有学生都显示相同 模式,或相同数量的模式,以相同的顺序。有些学生可能只做一个 事情,别人可能会做几个。因此,示例学生的抽象表示可能 看起来像这样:
请注意,在上面的示例中,student002
和 student003
都被编码为“1b”,尽管我故意将顺序显示为不同以反射(reflect) my data 的实际情况.
我的(实际)问题
- 我应该将
reason1
、reason2
、...
连接成一列吗? - 我如何(重新)编码 R 中的
reason
以反射(reflect)某些学生的多样性?
谢谢
我意识到这个问题既关乎良好的数据概念化,也关乎 R 的特定功能,但我认为在这里问这个问题是合适的。如果你觉得我问这个问题不合适,请在评论中告诉我,stackoverflow 会自动在我的收件箱中塞满悲伤的表情。如果我不够具体,请告诉我,我会尽力说得更清楚。
最佳答案
让它“长”:
library(reshape)
dnow <- read.csv("~/Downloads/catsample20100504.csv")
dnow <- melt(dnow, id.vars=c("Student", "instructor"))
dnow$variable <- NULL ## since ordering does not matter
subset(dnow, Student%in%c(41,42)) ## see the results
接下来要做什么取决于您想要进行的分析类型。但是长格式对于像你这样的不规则数据很有用。
关于r - 如何在 R 中构造和重新编码杂乱的分类数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769688/