【发布时间】:2018-05-01 15:19:13
【问题描述】:
我正在使用 R,我现在真的很茫然。我有这样的数据:
df <- data.frame(
group = c(2, 2, 2, 1, 1, 0, 0, 1, 1, 0, 1, 0),
grade = c(2, 4, 3, 1, 3, 2, 5, 1, 1, 2, 3, 1)
)
我想要这样:
group0 group1 group2
1 1 3 0
2 2 0 1
3 0 2 1
4 0 0 1
5 1 0 0
6 0 0 0
我一直在尝试使用子集、tapply、表格、for 循环等几个小时,但我似乎无法弄清楚。如果有人可以帮助我,我会非常高兴,我不禁认为我错过了一些非常简单和明显的东西。
我怎样才能产生我的目标输出?
/ 已解决,见下文。感谢您找到合适的标题顺便说一句,你们是最棒的!
【问题讨论】:
-
为什么结果有六行?
-
@Dason 我认为因为有 6 个可能的等级
-
每个年级一个 (1:6)。
-
我怀疑 op 想要
with(data, table(factor(grade, levels=1:6), group))但如果他们能确认详细信息就好了 -
@Leo 这些是您需要包含的详细信息。我们为什么要怀疑您的数据中没有实际存在的成绩?