【发布时间】:2020-04-09 16:35:07
【问题描述】:
我使用 tidyverse 包尝试了这段代码来过滤基于 sd 的异常值。
rt_trimmed_data_Dec = data_Dec %>%
group_by(Time_of_Testing, Item_Type, Group) %>%
summarise(RT_mean = mean(RT, na.rm=TRUE), RT_sd = sd(RT, na.rm=TRUE))%>%
ungroup() %>%
mutate(rt_high = RT_mean + (2.5 * RT_sd)) %>%
mutate(rt_low = RT_mean - (2.5 * RT_sd))
然后,我尝试加入两个数据框,以应用过滤掉。
data_Dec_RT = data_Dec %>%
inner_join(rt_trimmed_data_Dec) %>%
filter(RT < rt_high) %>%
filter(RT > rt_low)
然后我得到了这个错误
Error: `by` required, because the data sources have no common variables致电
rlang::last_error()以查看回溯。 > rlang::last_error() 消息:by必填,因为数据源没有公共变量 班级:rlang_error回溯: 1. dplyr::inner_join(., rt_trimmed_data_Dec) 9. dplyr:::common_by.NULL(by, x, y) 11. dplyr:::bad_args("by", "必填,因为数据源没有公共变量") 12. dplyr:::glubort(fmt_args(args), ..., .envir = .envir) 13. dplyr::inner_join(., rt_trimmed_data_Dec)。
您能否就如何解决此问题提出建议,非常感谢您的帮助。
【问题讨论】:
-
你在哪里合并??没有公共列(同名),您也没有定义它们。 R 应该如何知道在哪里合并?
-
确保
rt_trimmed_data_Dec具有与data_Dec相同的列,否则,在inner_join中定义by并使用您要在两个数据帧中使用的列。有关详细信息,请参阅?inner_join。
标签: r dplyr inner-join tidyverse outliers