我的数据通常包含宽格式的"左/右"或"前/后"前缀,不带分隔符,我需要通过这些前缀将变量组合成高格式.我有一个变通办法,可以使用"gSub()"在列名中插入分隔符("_"或".").然后,"Pivot_Long"对"Names_Sep"参数执行我想要的操作.不过,我想知道是否有一种方法可以更直接地使用"PIVOT_LONG""NAMES"语法("NAMES_PREFIX"、"NAMES_PLATE"、"NAMES_TO").以下是我正在try 的:
原始宽格式示例:
HW <- tribble(
~Subject, ~LeftV1, ~RightV1, ~LeftV2, ~RightV2, ~LeftV3, ~RightV3,
"A", 0, 1, 10, 11, 100, 101,
"B", 2, 3, 12, 13, 102, 103,
"C", 4, 5, 14, 15, 104, 105)
所需的高格式:
HWT <- tribble(
~Subject, ~Side, ~V1, ~V2, ~V3,
"A", "Left", 0, 10, 100,
"A", "Right", 1, 11, 101,
"B", "Left", 2, 12, 102,
"B", "Right", 3, 13, 103,
"C", "Left", 4, 14, 104,
"C", "Right", 5, 15, 105)
我try 了各种语法迭代,大致如下所示:
HWT <- HW %>% pivot_longer(
cols = contains(c("Left", "Right")),
names_pattern = "/^(Left|Right)",
names_to = c('Side', '.value') )
或者这样:
HWT <- HW %>% pivot_longer(
cols = contains(c("Left", "Right")),
names_prefix = "/^(Left|Right)",
names_to = c('Side', '.value') )
其中每一个都给出了语法错误,我不确定如何解决这些错误.