【发布时间】:2017-11-14 19:51:52
【问题描述】:
我有一张表,里面有很多列。例如:
MRN | Svc_Line...
--------|----------
123456 | Medical
123456 | Medical
987654 | Surgical
...
我发出以下命令,这些命令都带回了一个额外的列:
dplyr::select(
distinct(
.data = tblPerf
, MRN
)
)
带回 MRN 和 Svc_Line
dplyr::select(
.data = tblPerf
, MRN
)
带回 MRN 和 Svc_Line
dply::distinct(
.data = tblPerf
, MRN
)
带回 MRN 和 Svc_Line
无论我尝试带回什么列,Svc_Line 总是也带回。这是一个factor,不知道为什么会这样。我已经关闭并重新启动了我的 R-Studio 会话
表tblPerf 是从另一个表rad_data 拼凑而成的。表rad_data 有许多变量是使用mutate() 基于其他列的分组创建的。然后我做了以下事情:
tblPerf <- rad_data %>%
mutate(ord_per_pt_elos =
round((enc_order_count/Performance), 4)) %>%
mutate(ord_pty_svcline_ord_elos =
round((svcline_ord_per_pt/ord_pty_svc_elos), 4)) %>%
mutate(avg_ord_per_pt_elos = round(avg_ordperenc_ord_pty/ord_pty_elos, 4))
然后我试图从中选择/区分。从那以后,我也完成了tblPerf <- tblPerf,希望摆脱分组错误。我现在收到以下错误:
> tblPerf <- tblPerf
> dplyr::select(
+ .data = tblPerf
+ , MRN
+ )
Adding missing grouping variables: `Ord_Pty_Number`, `LIHN_Svc_Line`
# A tibble: 1,715 x 3
# Groups: Ord_Pty_Number, LIHN_Svc_Line [217]
Ord_Pty_Number LIHN_Svc_Line MRN
<chr> <fctr> <chr>
1 12345 Medical 123456
我昨天没有这个问题
【问题讨论】:
-
tablPerf 是否分组?
-
tblPerf 确实包含基于分组组合在一起的变量。我将更新问题以显示获取 tblPerf 的步骤
-
如果它被分组,你需要明确地使用
ungroup()来防止这些变量被标记。 -
这行得通,即使它没有改变表格中的任何内容,谢谢@joran
-
分组信息实际上是作为属性“附加”到数据框(tibble)的。因此,如果您在分组的 df 上运行
attributes(),您将看到该信息以及 dplyr 和 tibble 附加的其他信息。