我有9个月的患者数据。数据集包括4列-患者ID、访视日期、收缩压(SBP)和舒张压(DBP)。患者ID对每个人都是唯一的。每名患者都曾多次到诊所就诊。每次患者访视时,均进行SBP和DBP计数。
样本数据集:
structure(list(PAT_ID = c("PAT134844", "PAT134845", "PAT122062", "PAT134846", "PAT110934", "PAT134844","PAT134845", "PAT134846", "PAT110934", "PAT134846", "PAT122062", "PAT134845", "PAT134844"),
VISIT.DATE = c("1/2/19", "1/2/19", "1/2/19", "1/3/19", "1/3/19", "1/4/19", "3/5/19", "4/5/19", "4/5/19", "6/7/19", "6/7/19", "8/8/19", "8/8/19"),
BP_SYSTOLIC = c("108", "122", "126", "125", "167", "125", "111", "115", "120", "130", "125", "135", "110"),
BP_DIASTOLIC = c("70", "82", "77", "85", "89", "71", "78", "75", "89", "64", "61", "68", "77")), class = "data.frame", row.names = c(NA, -13L))
我希望我的结果表是-
| 患者ID|日期1| SBP 1| DBP 1|日期2| SBP 2| DBP 2|日期3|所以..|
| - -----|- -----|- -----|- -----|- -----|- -----|- -----|- -----|- -----|
| CH1234| 1月1日|一百二十|八十|五月五日|一百一十五|六十|7月7日||
| CH1235| 1月2日|一百三十|九十|六月六日|一百一十|七十|8月8日||
3条答案
按热度按时间tuwxkamq1#
下面的代码生成您要查找的列,假设
dat
是您的数据:其给出:
如果需要,可以重新排序/重命名列。
kkbh8khc2#
使用
aggregate
对数据进行分组,unnest_wider
来自tidyr获得宽格式,然后使用order
获得所需排列的方法tkqqtvp13#
这接近于How to reshape data from long to wide format和Reshape multiple value columns to wide format的复制,尽管两个答案都没有多列
names_from=
。dplyr
这是从长到宽的重塑。
data.table
你可以像上面那样重命名。
数据