【发布时间】:2016-08-23 13:29:43
【问题描述】:
在此示例数据中,三个人将 10 个项目分类为可变数量的组,并为每个组提供一个文本标签。 人员和标签是文本字段。下载并读入 R 时的项目 var 被读取为整数。项目变量实际上是分类数据,并为项目定义文本;测试的项目编号是一个很好的类比。标签、项目和人员可以按任何顺序排列,我通常按照您在此处看到的数据进行排序,以便进行目视检查。在这个例子中每个人有 10 个项目,在现实世界中通常有 100 个项目。每个人都有不同数量的标签。每个标签都有可变数量的项目。所有项目都与一个且只有一个标签相关联,并且所有项目(本例中为 1-10)为每个人出现一次,没有丢失数据。
人物组项
person_1 label_A 1
person_1 label_A 2
person_1 label_A 3
person_1 label_A 4
person_1 label_B 5
person_1 label_B 6
person_1 label_C 7
person_1 label_C 8
person_1 label_C 9
person_1 label_C 10
person_2 label_D 1
person_2 label_D 2
person_2 label_D 3
person_2 label_D 4
...为简洁起见省略其余行
我需要将数据重组为以下格式。每行是一个带有关联项目的标签变量,标签位于一行且仅一行。每个人都被重复多次,因为他们有独特的标签。我已经搜索了堆栈溢出,并使用 reshape 和 tidyr 进行了多次尝试,我能产生的最好的结果是一个矩形二进制矩阵,其中数据框中有 1 或 0,有一列用于人员和标签,然后 10 列标记为 1:10对于此示例中的每个项目值。我可以在 excel 中进行后期处理以获得我想要的东西,但宁愿在 R 中完成这一切,我需要列中的实际项目值,如此处所示。理想情况下,最大 ncol 对于 peson 和 label 将是一个,并且根据需要表示排序。 Person3,label_H 需要 7 col 的项目,因此这些列或其他行中可能有 NA 或 0。 任何帮助将不胜感激,我通常可以在 StackOverflow 上找到我需要的答案,这次我很难过。
人物组项目
person_1 label_A 1 2 3 4
person_1 标签_B 5 6
person_1 标签_C 7 8 9 10
person_2 标签_D 1 2 3 4
person_2 标签_E 5 6 7
person_2 标签_F 8 9 10
person_3 标签_G 1 2 3
person_3 label_H 4 5 6 7 8 9 10
【问题讨论】:
-
你有没有尝试过?
-
请展示您的尝试。