我一直在玩dplyr
这个问题,但似乎找不到一个好的解决方案。基本上,我有学生的姓名、在校年份和一些数字统计数据。像这样:
Name Yr. Stat_1 ...
A Fr. 5
B Fr. 5
A So. 5
A Jr. 5
B So. 5
C Sr. 5
我知道我可以在完成后使用该命令dplyr::mutate(count = n())
来查找单个学生的行数group_by()
,但我想在众多统计数据的加权总和中使用每个人的行数(混合模型,如果你会)。但是,有这样的情况,例如学生 C,他(无论是转学等)仅作为 Sr 出现在数据中,因此我不能简单地使用四年级学生的理解。因此,我想将上表重新配置为如下所示,以便我可以使用dplyr
'sgroup_by()
和mutate()
features 对各种统计数据进行加权。
Name Yr. Numb Stat_1 ...
A Fr. 1 5
B Fr. 1 5
A So. 2 5
A Jr. 3 5
B So. 2 5
C Sr. 1 5
请注意Numb
ofC
是 1 而不是 4。我希望得到有关此问题的任何帮助或指导。
我们可以row_number
在按“名称”分组后使用
library(dplyr)
df1 %>%
group_by(Name) %>%
mutate(Numb = row_number())
# A tibble: 6 x 4
# Groups: Name [3]
# Name Yr. Stat_1 Numb
# <chr> <chr> <int> <int>
#1 A Fr. 5 1
#2 B Fr. 5 1
#3 A So. 5 2
#4 A Jr. 5 3
#5 B So. 5 2
#6 C Sr. 5 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句