在 R 中使用 `dplyr` 识别列排名

鲍威尔

我一直在玩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

请注意NumbofC是 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章