【发布时间】:2020-07-30 20:43:28
【问题描述】:
我在这里很困惑。我有一个如下所示的数据集:
dataset <- data.frame(
Label = c(1.1,1.1,1.1,2.1,2.1,2.1,3.1,3.1,3.1,1.6,1.6,1.6,2.6,2.6,2.6,3.6,3.6,3.6),
StudyID = c(1,1,1,2,2,2,3,3,3,1,1,1,2,2,2,3,3,3),
ScanNumber = c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3),
Timepoint = c(1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,6,6,6),
Fat = c(3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8),
Lean = c(5,5,5,6,6,6,7,7,7,3,3,3,4,4,4,5,5,5)
)
我想要 pivot_wider,以便我对每个 StudyID 和时间点进行三次脂肪和瘦肉测量。您可以看到 Label 包含有关 StudyID 和 Timepoint 组合的信息(例如,StudyID = 1 和 Timepoint = 6,Label 为 1.6)。我就是这样做的:
newdataset <- dataset %>%
pivot_wider(
id_cols = Label,
names_from = ScanNumber,
names_sep = "_",
values_from = c(Fat, Lean)
)
但是,我得到的输出不再包括 StudyID 和 Timepoint。我需要这些变量然后将数据集与另一个数据集合并。我一直在搜索互联网,但似乎无法在执行 pivot_wider 后找到如何将 StudyID 和 Timepoint 保留在新数据集中。我错过了什么?
提前致谢。
【问题讨论】:
-
仅供参考 -
id_cols默认为您未明确引用的 df 中的所有字段。所以dataset %>% pivot_wider(names_from = ScanNumber,names_sep = "_", values_from = c(Fat, Lean))就是你所需要的