【发布时间】:2026-02-22 19:00:01
【问题描述】:
假设我有以下数据集:
data = read.table(text = "teamID quiz.1.answer quiz.1.solution quiz.2.answer quiz.2.solution
1 2 2 4 4
1 3 2 1 4", header = T)
> data
teamID quiz.1.answer quiz.1.solution quiz.2.answer quiz.3.solution
1 1 2 2 4 4
2 1 3 2 1 4
我想为团队中的每个人(具有相同唯一 teamID 的个人)创建一个列,该列对应于他们团队中其他人的价值观。所以,例如:
data_final = read.table(text = "teamID quiz.1.answer quiz.1.solution quiz.2.answer quiz.2.solution partner_quiz.1.answer partner_quiz.1.solution partner_quiz.2.answer partner_quiz.2.solution
1 2 2 4 4 3 2 1 4
1 3 2 1 4 2 2 4 4", header = T)
有了这个输出:
> data_final
teamID quiz.1.answer quiz.1.solution quiz.2.answer quiz.2.solution partner_quiz.1.answer partner_quiz.1.solution
1 1 2 2 4 4 3 2
2 1 3 2 1 4 2 2
partner_quiz.2.answer partner_quiz.2.solution
1 1 4
2 4 4
所有相关列都将以“答案”或“解决方案”作为后缀。永远只有两个人的团队。
我可以使用以下代码在每个变量的基础上模拟这种行为。但是,在实际数据集中,我有超过 100 个测验问题和解决方案,因此需要找到一种方法来对匹配特定正则表达式查询的变量执行此操作。即,quiz.[a number 1-100].answer or solution
data <- transform(data,partner_quiz.1.answer=ave(quiz.1.answer,teamID,FUN=rev))
【问题讨论】:
标签: r