R中具有静态行的操作

  • 本文关键字:操作 静态 r dplyr
  • 更新时间 :
  • 英文 :


我有一个df,它是前两排两个教室里好学生、普通学生和坏学生的百分比,以及整个学校里好学生和普通学生的百分比

Classr Good Regular   Bad 
<chr> <dbl>   <dbl> <dbl> 
1 A        30      10    60   
2 B        40      10    50   
3 PR       80      10    10 

我需要为任何教室计算一个指数,这是的结果

|PRGood GoodA|+|PRRegular RegularA|+| PRBad BadA|和教室B|PRGood GoodB|+|PRRegular RegularB|+| PRBad BadB|

在这个例子中,结果应该是:

Classr Good Regular   Bad  INDEX
<chr> <dbl>   <dbl> <dbl>  <dbl>
1 A        30      10    60    100  
2 B        40      10    50     80
3 PR       80      10    10     NA <- This value doesn't matter

你知道怎么做吗?

我尝试使用此代码,但收到错误消息:

df%>%
mutate(across(2:4, ~.-tail(1,across(2:4)),))

实现所需结果的一个选项可能是这样的:

library(dplyr)
mutate(d, INDEX = rowSums(across(c(Good, Regular, Bad), ~ abs(.x[length(.x)] - .x))))
#>   Classr Good Regular Bad INDEX
#> 1      A   30      10  60   100
#> 2      B   40      10  50    80
#> 3     PR   80      10  10     0

数据

d <- structure(list(Classr = c("A", "B", "PR"), Good = c(
30L, 40L,
80L
), Regular = c(10L, 10L, 10L), Bad = c(60L, 50L, 10L)), class = "data.frame", row.names = c(
"1",
"2", "3"
))

最新更新