我的数据集看起来像这样:
Id smoke_2m Smoke_3m smoke_4m alcohol_3m age sex
1 2 3 5 7 30 M
2 3 3 5 6 26 M
3 7 5 7 2 25 F
我希望我的输出如下:
Id Time smoking alcohol age sex
1 2m 2 - 30 M
1 3m 3 7 30 M
1 4m 5 - 30 M
2 2m 3 - 26 M
2 3m 3 6 26 M
2 4m 5 - 26 M
3 2m 7 - 25 F
3 3m 5 2 25 F
3 4m 7 - 25 F
在此,对于酒精,只有3 m值可用,因此我希望其他时间点(2 m,4 m)的值为空(-)或由先前值填充,所有三个酒精时间点都是例如7
我尝试使用下面的代码,但它只执行一个变量,即吸烟
data <- data %>%
pivot_longer(
cols = c(smoke_2m, smoke_3m, smoke_4m),
names_to = "time_point",
values_to = "smoking_status",
)
如何编译所有变量?
1条答案
按热度按时间ttcibm8c1#
这里的技巧是使用
names_pattern
,这允许其特殊情况".value"
作为names_to
之一。不过,推断您打算将
Smoke_3m
分组在smoke
中,让我们解决这个问题:数据