首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用来自另一个数据帧的循环计算将列添加到数据帧

使用来自另一个数据帧的循环计算将列添加到数据帧
EN

Stack Overflow用户
提问于 2019-06-08 03:19:42
回答 1查看 22关注 0票数 0

我有两个数据集,一个在个人层面,另一个在学校层面。我想用一个循环来计算每个学校的打架比例(因为我有100多所学校)。

当前代码:

代码语言:javascript
运行
复制
for (i in levels(df$school_id)) {
     school <- subset(df, school_id == i)
     number_students <- nrow(school)
     prop <- (sum(school$fight_binary, na.rm = TRUE))/number_students
     df$proportion_fight[df$school_id == i] <- prop
}

我首先尝试初始化新列,但是当我运行这个循环时,什么也没有发生。

下面是一些示例数据

个人级别:

代码语言:javascript
运行
复制
student_id   school_id   ever_fight
         1           2            1
         2           3            0
         3           1            1
         4           1            1
         5           2            0
         6           2            0
         7           2            0
         8           2            0
         9           3            1
        10           1            0
        11           3            1
        12           3            1
        13           3            1
        14           3            1
        15           1            0
        16           2            0
        17           1            0
        18           1            0
        19           1            0
        20           1            0

学校级别(需要用上面的数据填写第二列):

代码语言:javascript
运行
复制
 school_id    proportion_fight
         1
         2
         3
EN

回答 1

Stack Overflow用户

发布于 2019-06-08 03:27:25

我们可以使用mean的群组

代码语言:javascript
运行
复制
library(dplyr)
df1 %>% 
     group_by(school_id) %>% 
     summarise(proportion_flight = mean(ever_flight))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56500142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档