首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的Group by和conditions

R中的Group by和conditions
EN

Stack Overflow用户
提问于 2021-10-05 07:49:09
回答 2查看 45关注 0票数 0

我有一个数据框架,名字、课程、课程和完成情况都很相似。

代码语言:javascript
运行
复制
name <- c("John", "John", "John", "Sam", "Sam")
course <- c("Driving", "Driving", "Driving", "Cycling", "Cycling")
lesson <- c("Gears", "Parking", "Overtaking", "Balancing", "Turning")
completion <- c(1, 0, 1, 1, 1)
df_school <- data.frame(name, course, lesson, completion)

如果学生没有完成任何课程,我想将所有完成更改为0。输出应为:

代码语言:javascript
运行
复制
name <- c("John", "John", "John", "Sam", "Sam")
course <- c("Driving", "Driving", "Driving", "Cycling", "Cycling")
lesson <- c("Gears", "Parking", "Overtaking", "Balancing", "Turning")
completion <- c(0, 0, 0, 1, 1)
df_completed <- data.frame(name, course, lesson, completion)

谢谢

EN

回答 2

Stack Overflow用户

发布于 2021-10-05 07:51:59

作者:dplyr

代码语言:javascript
运行
复制
df_school %>%
  group_by(name) %>%
  mutate(completion = +all(completion == 1))

  name  course  lesson     completion
  <chr> <chr>   <chr>           <dbl>
1 John  Driving Gears               0
2 John  Driving Parking             0
3 John  Driving Overtaking          0
4 Sam   Cycling Balancing           1
5 Sam   Cycling Turning             1
票数 3
EN

Stack Overflow用户

发布于 2021-10-05 07:56:04

使用dplyr

代码语言:javascript
运行
复制
library(dplyr)
df_school %>% group_by(name) %>%
  mutate(completion=+(length(completion) == sum(completion)))

输出:

代码语言:javascript
运行
复制
  name  course  lesson     completion
  <chr> <chr>   <chr>           <int>
1 John  Driving Gears               0
2 John  Driving Parking             0
3 John  Driving Overtaking          0
4 Sam   Cycling Balancing           1
5 Sam   Cycling Turning             1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69446641

复制
相关文章

相似问题

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