使用dplyr::distinct()时出现R错误的问题:;没有适用于'的方法;独特的';适用于“类”的对象;c(';双精度';,';数字';)”&引用;

使用dplyr::distinct()时出现R错误的问题:;没有适用于'的方法;独特的';适用于“类”的对象;c(';双精度';,';数字';)”&引用;,r,dplyr,distinct,R,Dplyr,Distinct,以下是我的示例数据帧: 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", .Nam

以下是我的示例数据帧:

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")
)
令人困惑的是,每当我将数据帧传递给函数并指定如下列时,它都会工作:
distinct(df.ex,days)
。但是,如果我创建一个感兴趣的变量向量,比如:
days\u vec,也许你可以试试

df.ex %>% group_by(id_1) %>% summarise(distinct_values = n_distinct(days))
您需要
内部的
不同的
,因为它适用于
tbl
(或数据帧…),我添加
列表来显示所有不同的值,而不仅仅是第一个值

另一种方式:

df.ex %>% distinct(distinct_values = days)
根据问题进行相应更新。我认为这解决了你的问题:

df.ex %>% group_by(id_1) %>% summarise(distinct_values = n_distinct(days))

distinct
的第一个参数是data.frame,当您执行
df.ex%>%summary(distinct_values=distinct(days))
时,您将
days
传递给它,它是一个向量,因此会产生错误。你想做什么?谢谢,这些工作。不过,我的问题应该更具体一些。我需要它来返回一个数据帧。我将对问题进行编辑,使其更清楚。谢谢如果您需要数据框,请从第二种方式中移除
拉入
。我编辑了我的答案。再次感谢,我编辑了我的问题,让它更清楚我在寻找什么。基本上我需要一个使用ID为的group_by的汇总表,但这返回了一个错误。我编辑了我的答案。似乎您需要
n_distinct
。是吗?哇,谢谢这正是我需要的!但是理解为什么
count(distinct(,days))
不返回相同的内容仍然很好。理论上,它应该给出正确的结果!
result <- df.ex %>% group_by(id_1) %>% summarise(count_distinct_values = count(distinct(., days)))
df.ex %>% group_by(id_1) %>% summarise(distinct_values = n_distinct(days))
df.ex %>% distinct(distinct_values = days)
df.ex %>% group_by(id_1) %>% summarise(distinct_values = n_distinct(days))