【发布时间】:2018-11-01 16:31:09
【问题描述】:
我正在尝试传播数据框,但我对spread()和gather()不太熟悉。
以下是我的数据示例。它有 9 行都具有相同的Application.Number。我想每个Application.Number-Decicion 组合都得到一行。其余变量 date_generated date_decided time_to_decision 和 text 必须为每个 Application.Number-Decicion 组合重复,否则应该取最后一个。数据已按Application.Number 和date_generated 排序。
structure(list(Application.Number = c(80749L, 80749L, 80749L,
80749L, 80749L, 80749L, 80749L, 80749L, 80749L), Decision = c("Invalid",
"Invalid", "Invalid", "Invalid", "Invalid", "Invalid", "Approved",
"Approved", "Approved"), date_generated = structure(c(1521810060,
1521810060, 1523523840, 1523536500, 1524036720, 1524136380, 1524137460,
1524137460, 1524137460), class = c("POSIXct", "POSIXt"), tzone = ""),
date_decided = structure(c(1522155960, 1522155660, 1523534400,
1523600520, 1524127140, 1524136740, 1524211800, 1524211740,
1524211200), class = c("POSIXct", "POSIXt"), tzone = ""),
time_to_decision = c(4.00347222222222, 4, 0.122222222222222,
0.740972222222222, 1.04652777777778, 0.00416666666666667,
0.860416666666667, 0.859722222222222, 0.853472222222222),
text = c("rIUQRmOkyZ", "ZxdYUr16NR", "8IIipoleOV", "nLuIgToxcT",
"xYFksrws87", "N2oECMtgQo", "RKcrBcBFI2", "jaH438byVt", "80ggA2hZr7"
)), row.names = 15880:15888, class = "data.frame")
编辑:决定输出应该只有一行,所有行都应该围绕Application.Number 旋转。
我最终用重复项制作了一个单独的数据框,并将其连接回唯一的行。
一定有更好的办法。
【问题讨论】:
-
你能显示预期的输出吗
-
我认为这是一个 XY 问题。 (即当你应该做 Y 时查询如何做 X。)你不应该试图传播具有这种不规则结构的数据。相反,您应该使用列表或学习如何管理长格式数据。