【发布时间】:2019-09-19 10:01:59
【问题描述】:
这是我的示例数据框:
df.ex <- structure(
list(
id_1 = c(15796L, 15796L, 15799L, 15799L),
id_2 = c(61350L,
351261L, 61488L, 315736L),
days = c(30.5, 36.4854, 30.5, 30.5)
),
row.names = c(NA,-4L),
class = "data.frame",
.Names = c("id_1",
"id_2", "days")
)
dplyr::distinct() 出现此错误
Error in UseMethod("distinct_") : no applicable method for 'distinct_' applied to an object of class "c('double', 'numeric')"
令人困惑的是,每当我将数据框传递给函数并像这样指定列时,它都会起作用:distinct(df.ex, days)。但是,如果我像这样创建感兴趣变量的向量:days_vec <- df.ex$days 并将向量作为参数传递给函数,如下所示:distinct(days_vec) 然后我得到错误。
在我的实际代码中,我需要在 dplyr 管道中使用 distinct,如下所示:
df.ex %>% summarise(distinct_values = distinct(days))
当然,这也行不通。有谁知道如何克服这个错误?
非常感谢, 彼得
编辑:对于我的实际问题,我需要制作一个汇总表,其中包含 days 的不同值的计数,它将按 id_1 分组,它看起来像这样:
result <- tibble(
id_1 = c(15796, 15799),
count_distinct_values = c(2, 1)
)
我原以为以下内容会有所帮助,但它返回另一个错误:
result <- df.ex %>% group_by(id_1) %>% summarise(count_distinct_values = count(distinct(., days)))
任何想法都将不胜感激。
【问题讨论】:
-
distinct的第一个参数是 data.frame,当您执行df.ex %>% summarise(distinct_values = distinct(days))时,您将days传递给它,这是一个向量,因此会出现错误。你想做什么?