我坚持了以下问题:
我的数据集(rv):
id group cat value suppl thera
1 vita NA NA vita20 0.557
2 vitb NA NA vitb200 0.764
3 vitc NA NA vitc50 0.351和我期待:
id group cat value
1 vita suppl vita20
1 vita thera 0.557
2 vitb suppl vitb200
2 vitb thera 0.764
3 vitc suppl vitc50
3 vitc thera 0.351提前感谢您的帮助和时间!
发布于 2022-10-01 22:50:36
使用基本R reshape(),您可以这样做,将“宽”数据转换为“长”
x <- read.table(
header = TRUE,
text =
"id group cat value suppl thera
1 vita NA NA vita20 0.557
2 vitb NA NA vitb200 0.764
3 vitc NA NA vitc50 0.351"
)
reshape(
x,
idvar = "id",
timevar = "cat",
varying = 5:6,
v.names = "value",
times = c("suppl", "thera"),
direction = "long"
)
#> id group cat value
#> 1.suppl 1 vita suppl vita20
#> 2.suppl 2 vitb suppl vitb200
#> 3.suppl 3 vitc suppl vitc50
#> 1.thera 1 vita thera 0.557
#> 2.thera 2 vitb thera 0.764
#> 3.thera 3 vitc thera 0.351https://stackoverflow.com/questions/73922192
复制相似问题