【发布时间】:2021-06-15 00:47:42
【问题描述】:
出于报告目的,我有一个定义如下的数据框:
Data:
V df_ischemia 12 obs. of 2 variables
record_id : 'labelled' chr "1001" "1001" "1001" "1001" "1002" ...
..- attr(*, "label")= chr "Patient number"
ischemic: Factor w/ 2 levels "Unchecked","Checked": NA NA 1 1 NA 2 NA 1 NA 2 ...
..- attr(, "redcapLabels")= chr [1:2] "Unchecked" "Checked"
..- attr(, "redcapLevels")= int [1:2] 0 1
..- attr(, "label")= chr "Complication(s): Ischemia"
真实的数据框有几百行,但对于这个例子,假设它只有 12 行,如下所示:
| record_id | ischemic
1 | 1001 | NA
2 | 1001 | NA
3 | 1001 | Unchecked
4 | 1001 | Unchecked
5 | 1002 | NA
6 | 1002 | Checked
7 | 1003 | NA
8 | 1003 | Unchecked
9 | 1004 | NA
10 | 1004 | Checked
11 | 1004 | Checked
12 | 1004 | Checked
目标是将其分组为具有“已检查”值的患者,因此预期输出应如下所示:
| record_id | ischemic
1 | 1002 | Checked
2 | 1004 | Checked
我想只使用group_by 和max
df_ischemia <- group_by(record_id) %>% max(df_ischemia$ischemic)
# Error object 'record_id' not found
df_ischemia <- group_by(df_ischemia$record_id) %>% max(ischemic)
# no applicable method for 'group_by_' applied to an object of class "c('labelled', 'character')"
df_ischemia <- group_by(record_id) %>% summarise(df_ischemia$ischemic=max(df_ischemia$ischemic))
# Error: unexpected '=' ..
但这不起作用,但是该因子确实具有 int 值,因此应该可以设置最大值(?)。我在某处读到应该订购该因素。看起来它是有序的,但不知道如何检查是否是这种情况,或者如何设置现有因子的顺序。
【问题讨论】: