【发布时间】:2020-08-21 21:48:39
【问题描述】:
我有一个包含 2 列的数据框:人和点。在我的实际数据集中有超过 1000 人。
我的目标:我需要找到超过 126 分的人。
df1:
person points
abc
abc 1
abc
abc 2
abc1
abc1 1
abc1
我用过这段代码:
df1 <- read.csv("df1.csv")
points_to_numeric <- as.numeric(df1$points)
person_filtered <- df1 %>%
group_by(person) %>%
dplyr::filter(sum(points_to_numeric, na.rm = T)>126)%>%
distinct(person) %>%
pull()
person_filtered
当我输入此代码时,我得到了 800 个唯一的人。但是如果我想知道有多少人的分数低于 126 - 我也会得到 800 个独特的人。所以看起来它不起作用。
【问题讨论】:
-
如果没有数据可供我们使用,则无法重现。使用
dput(head(df1))生成一个小的测试数据集 -
您的代码不起作用,因为
points_to_numeric未分组,因为它不在df1对象内,它应该是df1$points <- as.numeric(df1$points),然后是...filter(sum(points...