【发布时间】:2018-12-07 18:35:12
【问题描述】:
我有一个非常广泛的数据集(2000 多个变量),我试图整理这些数据集,但我在试图从变量名中提取一个值时遇到了困难。如果我有一个变量是"E1Time1_Date",我想将它重塑为三个变量:E=1、Time=1 和Date=原始日期值。
这甚至可能吗?我试过使用gather(),但我猜我需要先做一个我错过的步骤。感谢您的帮助!
如果有人想让魔法发生,这里是示例数据集:
structure(list(ID = c(123, 225), UnrelatedV1 = c("Unrelated1",
"Unrelated1"), UnrelatedV2 = c("Unrelated2", "Unrelated2"), E1T1_Date = structure(c(1506816000,
1513296000), class = c("POSIXct", "POSIXt"), tzone = "UTC"),
E1T1_v1 = c(10, 20), E1T1_v2 = c(20, 20), E1T1_v3 = c(30,
20), E1T1_v4 = c(40, 20), E1T2_Date = structure(c(1512086400,
NA), class = c("POSIXct", "POSIXt"), tzone = "UTC"), E1T2_v1 = c(10,
NA), E1T2_v2 = c(10, NA), E1T2_v3 = c(10, NA), E1T2_v4 = c(10,
NA), E2T1_Date = structure(c(1522540800, 1525132800), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), E2T1_v1 = c(10, 20), E2T1_v2 = c(20,
20), E2T1_v3 = c(10, 20), E2T1_v4 = c(10, 20), E2T2_Date = structure(c(1533859200,
NA), class = c("POSIXct", "POSIXt"), tzone = "UTC"), E2T2_v1 = c(10,
NA), E2T2_v2 = c(30, NA), E2T2_v3 = c(10, NA), E2T2_v4 = c(10,
NA)), .Names = c("ID", "UnrelatedV1", "UnrelatedV2", "E1T1_Date",
"E1T1_v1", "E1T1_v2", "E1T1_v3", "E1T1_v4", "E1T2_Date", "E1T2_v1",
"E1T2_v2", "E1T2_v3", "E1T2_v4", "E2T1_Date", "E2T1_v1", "E2T1_v2",
"E2T1_v3", "E2T1_v4", "E2T2_Date", "E2T2_v1", "E2T2_v2", "E2T2_v3",
"E2T2_v4"), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-2L))
【问题讨论】:
-
在dput中有
E1T1_v1, E1T1_v2 etc列