ACCOUNT = c(M205109, M205109, M201212, M205668, M207954, M208966, M203465, M207622, M201869, M201869)
age = c(20, 20, 18, 29, 21, 19, 19, 23, 22, 22)
我使用的代码
library(tidyverse)
library(data.table)
library(dtplyr)
library(lubridate)
age_summary_all <- data %>%
distinct(ACCOUNT) %>%
summarise(min = min(age, na.rm=TRUE),
q1 = quantile(age, 0.25, na.rm=TRUE),
median = median(age,na.rm=TRUE),
mean = mean(age,na.rm=TRUE),
q3 = quantile(age, 0.75, na.rm=TRUE),
max = max(age, na.rm=TRUE))
我得到这个错误:summarise()
中的错误:!计算min = min(age, na.rm = TRUE)
时出现问题。由mask$eval_all_summarise()
中的错误引起:!找不到对象'age'
真正奇怪的是,如果将distinct替换为引用不同列的group_by子句,则完全相同的代码可以正常运行,但我需要对唯一的个人进行分析-数据的本质是,个人帐户可能在数据表中有多个条目。因此,对于上面的示例,我希望summarise子句的n = 8。
所有的软件包都是最新的。
2条答案
按热度按时间eaf3rand1#
在这种情况下,
distinct
需要.keep_all=T
。.keep_all:如果为“TRUE,”则保留.“data”中得所有变量.如果...“”得组合不是唯一得,则保留第一行值.
不使用
.keep_all=T
的呼叫使用
.keep_all=T
呼叫第一次
数据
iqjalb3h2#
我想这就是你想要达到的目标: