我的数据是一个更复杂,但简化它基本上看起来像这样。每一行只有一个是在多个颜色:* 列之一。冒号前的"颜色"需要是新的列名,与命名的颜色"蓝色","红色",或"绿色"后的冒号下旋转到正确的"标识"我忘了提有变量列之前和之后的这些多个列我想要旋转到一个列。我想要旋转的列都有相同的名称之前的冒号。
| 身份|颜色:蓝色|颜色:红色|颜色:绿色|
| - ------| - ------| - ------| - ------|
| 1个|||是的|
| 第二章|是的|||
| 三个||是的||
我想把重点放在
| 身份|颜色|
| - ------| - ------|
| 1个|绿色|
| 第二章|蓝色|
| 三个|红色|
我不确定这是否是一个透视问题。我已经通读了tidyr透视文档,位于
https://tidyr.tidyverse.org/articles/pivot.html
我没有看到类似的例子或能够确定一个解决方案,可能与我提供的数据工作。
有谁能帮我一个代码块,我可以按照它来解决表面上看起来很简单的问题,但我对R. Thank you和Seasons Blessings的有限熟练程度却无法解决
2条答案
按热度按时间czq61nw11#
我们可以通过循环
across
字符列将character
列中的空格(""
)转换为NA
,然后通过选择列名为starts_with
"Color:"的cols
将其整形为"long"。tcomlyy62#
您需要使用
pivot_longer
函数,它将收集列并将它们转换为行。注意:我必须把````放在列名前面,因为
:
是R中那些讨厌的保留字符之一。您希望避免将其作为列分隔符(_
可能是一个有用的替代)。您不能总是控制这一点,但它只是需要注意的事情。