【发布时间】:2025-12-12 23:30:02
【问题描述】:
我正忙着弄清楚如何做一个我需要做的一些数据处理的特定支点。我有数据需要更宽地进行连接以避免乘法连接问题,但是我需要将其中的四列旋转回 long 才能获得最终数据集。实际数据相当笨拙,所以我将从一个我认为可以解决相同问题的玩具示例开始:
我现在拥有的数据:
A, B, C, D, E, F, G, H, I, J, K, L
w1, w2, w3, w4, l1, l2, l3, l4, l5, l6, l7, l8
w5, w6, w7, w8, l9, l10, l11, l12, l13, l14, l15, l16
我需要的格式:
A, B, C, D, M, N, O, P
w1, w2, w3, w4, l1, l2, l3, l4
w1, w2, w3, w4, l5, l6, l7, l8
w5, w6, w7, w8, l9, l10, l11, l12
w5, w6, w7, w8, l13, l14, l15, l16
基本上,我有一组数据,其中大部分列需要每 4 列加长(或“堆叠”)一次。一列需要l1, l5, l9, l13, l(4n+1),下一列需要l2, l6, l10, l14, l(4n+2) 等。如果这样可以使枢轴更容易,我不介意重新排列列,但我不知道如何让R 为我做这件事。 pivot_longer 和 pivot_longer_spec 上的文档假定数据......比我必须使用的数据好一点,他们的例子对这项任务没有帮助。他们似乎还假设重要数据包含在列名中,但对于我拥有的这些数据,情况并非如此——我只需要特定配置中单元格中的数据。
实际的宽数据集如下所示:https://i.stack.imgur.com/hRhBw.png,所以我需要它的样子
[wide columns], T1.y, data.consensus_text_T2, data.consensus_text_T3, data.consensus_text_T4,
[wide columns], T7, data.consensus_text_T8.y, data.consensus_text_T9.y, data.consensus_text_T10.y,
[wide columns], T13, data.consensus_text_T14, data.consensus_text_T15, data.consensus_text_T16
以此类推,直到它在 T1.y 处重复,在 14 行后的宽列中出现新值。
感谢您的帮助!
【问题讨论】:
标签: r dplyr tidyverse data-transform