gpt4 book ai didi

r - 按属性对行进行分组

转载 作者:行者123 更新时间:2023-12-01 11:57:58 25 4
gpt4 key购买 nike

我有一个数据框,其中包含有关学生迟到各种类(class)的数据。每行包含有关迟到学生及其类(class)的数据:上课日期和时间、类(class)名称、类(class)人数、迟到分钟数以及学生的性别。为了获得所有类(class)迟到学生的总百分比,我需要计算行数(迟到学生)并将其与上课学生总数进行比较。

我不能简单地将所有行的类大小相加;这将多次计算给定类(class)的学生人数,类(class)中每个迟到的学生一次。相反,我只需要为类(class)的每次 session 计算每个类(class)人数一次。

例子

Key:迟到分钟数、类(class)名称、出勤学生、迟到学生性别、迟到分钟数。

11/12/10 Stats 30 M 1
11/12/10 Stats 30 M 1
11/12/10 Stats 30 M 1
11/15/10 Stats 40 F 3
11/15/10 Stats 40 F 3
11/15/10 Stats 40 F 3
11/16/10 Radar 22 M 2
11/16/10 Radar 22 M 2
11/16/10 Radar 22 M 2
11/16/10 Radar 22 M 2
11/16/10 Radar 22 M 2

在这个案例中,有3个不同的类会,11个迟到的学生。如何确保每次类会的类(class)人数只计算一次?

最佳答案

如果我正确地理解了您想要什么,那么使用 plyr 包比 tapply 或 by 更容易做到这一点,因为它理解什么相当于多元分组。例如:

ddply(df, .(DATE,CLASS), transform, PERCENT_LATE=length(MINUTES.LATE)/CLASS.SIZE))
这里的 length 参数可以是任何列名。 ddply 将为 DATE 和 CLASS 因子级别的每个组合拆分您的数据框。每个迷你数据框中的行数应该对应于有多少迟到的学生(因为每个迟到的学生都有一个条目)。这就是长度(任何变量)的来源。将它除以分数的类大小列。

关于r - 按属性对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com