【发布时间】:2021-07-01 00:09:24
【问题描述】:
我有一个数据框,其中每一列都是不同的组,并且该列中的每个值都是某种标识符。所有列的长度都不同,并且组之间的值存在一些重叠。我的目标是生成一个新的数据框,其中列名保持不变,初始数据框中存在的每个值都列为行名,并且每个相应单元格中包含的每个值都有计数数据。
输入 DF:
A B C D
Lamp Car Orange Apple
Potato Car Work Run
Computer Sword Run
Buns Tab
Screen
Drain
我想要获得的 DF,或者类似的东西:
A B C D
Lamp 1 0 0 0
Potato 1 0 0 0
Computer 1 0 0 0
Buns 1 0 0 0
Screen 1 0 0 0
Drain 1 0 0 0
Car 0 2 0 0
Sword 0 1 0 0
Orange 0 0 1 0
Work 0 0 1 0
Run 0 0 1 1
Tab 0 0 1 0
Apple 0 0 0 1
我曾尝试四处查看类似的帖子,但我一直未能找到非常合适的内容。对此的任何帮助将不胜感激。
【问题讨论】:
-
如果您将数据放在两列中,一列用于当前列名,另一列用于值,您应该能够使用
table来获取您想要的值。如果需要,您可以使用tidyr::pivot_longer获取这两列。 -
你不能有一个
data.frame列有不同的长度。根据您获取数据的方式,它将失败或用 NA 填充它们。 -
您能否使用
dput或类似格式以可重现的格式提供您的数据?阅读how to give a reproducible example
标签: r dataframe data-wrangling