使用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))