r - R中如何处理多索引数据?

标签 r dataframe loops

我有一个包含 100 个案例的多索引数据集,每个案例有 5 个问题。每个问题由 2 位评分者评分。

case  question  rater1  rater2
1     1         1       1
1     2         1       0 
1     3         1       1
1     4         1       1
1     5         0       0
2     1         0       1
2     2         1       1 
2     3         1       1
2     4         1       0
2     5         0       0
3     1         0       0
3     2         1       0 
3     3         1       1
3     4         1       1
3     5         0       1
...

我想将问题 1、2、3 的每种情况求和为 A,将问题 4、5 的每种情况求和为 B。然后在每种情况的末尾插入该值,例如

case  question  rater1  rater2
1     1         1       1
1     2         1       0 
1     3         1       1
1     4         1       1
1     5         0       0
1     A         3       2
1     B         1       1
2     1         0       1
2     2         1       1 
2     3         1       1
2     4         1       0
2     5         0       0
2     A         2       3
2     B         1       0
3     1         0       0
3     2         1       0 
3     3         1       1
3     4         1       1
3     5         0       1
3     A         2       1
3     B         1       2
...

我不确定如何实现它。

最佳答案

您可以汇总数据,然后将其绑定(bind)回原始数据并重新利用它。例如

library(dplyr)
dd %>% 
  group_by(case, grp = case_when(question %in% 1:3~"A", question %in% 4:5 ~ "B")) %>% 
  summarize(across(-question, sum)) %>% 
  ungroup() %>% 
  rename(question = grp) %>% 
  bind_rows(mutate(dd, question = as.character(question))) %>% 
  arrange(case, question)

关于r - R中如何处理多索引数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74647815/

相关文章:

r - 如何使用 aws.s3 包函数(write_using 和 read_using)从 EC2 上的 R 访问 S3 数据?

java - 循环遍历两个对象列表以找到相同的对象java

python - 将日期时间中的数据框列值与整数进行比较?

python - 如何从文本文件创建数据框

java - 如何在无限循环中获得UDP连接?

python - 如何在Python中使用lxml解析时防止无限循环?

R - 根据同一列中先前的值进行变异

r - 如何访问 R v3 中的 Windows COM 对象?

r - R 中的 3d 曲面图与 plotly

python - 使用 Big Pandas DataFrame 的列值创建 Mini/Sub 数据框