我有广泛的格式化数据,我想融化并添加年,月,日的新变量。我写的for循环有点慢,我正在寻找更快的东西。
dput:
div
融化和循环:
df <- structure(list(id = c("USC00030150", "USC00030150"), year = c(1900L,
1900L), month = c("01", "01"), element = c("TMAX", "TMIN"), d01 = c(22L,
-50L), d02 = c(22L, -83L), d03 = c(56L, -100L), d04 = c(106L,
-33L), d05 = c(189L, 61L), d06 = c(117L, 67L), d07 = c(133L,
94L), d08 = c(144L, 78L), d09 = c(133L, 100L), d10 = c(133L,
117L), d11 = c(100L, 89L), d12 = c(122L, -11L), d13 = c(156L,
-6L), d14 = c(194L, 22L), d15 = c(206L, 117L), d16 = c(194L,
122L), d17 = c(139L, 117L), d18 = c(61L, 56L), d19 = c(56L, 6L
), d20 = c(172L, 17L), d21 = c(122L, -11L), d22 = c(189L, 0L),
d23 = c(206L, 61L), d24 = c(183L, 89L), d25 = c(72L, 56L),
d26 = c(33L, -33L), d27 = c(67L, -17L), d28 = c(22L, 0L),
d29 = c(17L, -111L), d30 = c(94L, -67L), d31 = c("28 6",
"-33 6")), .Names = c("id", "year", "month", "element",
"d01", "d02", "d03", "d04", "d05", "d06", "d07", "d08", "d09",
"d10", "d11", "d12", "d13", "d14", "d15", "d16", "d17", "d18",
"d19", "d20", "d21", "d22", "d23", "d24", "d25", "d26", "d27",
"d28", "d29", "d30", "d31"), class = c("tbl_df", "data.frame"
), row.names = c(NA, -2L))
答案 0 :(得分:3)
您不需要循环。试试这个:
df2$date <- paste0(df2$year, df2$month, substr(df2$variable, 2,3))