我有以下数据框:
Name id Quiz1 Exam1 Exam2 Quiz2 Exam3
1 Susan 123412 50 47 33 67 79
2 John 548963 38 61 75 59 65
3 Bob 234563 89 97 85 88 92
4 Bill 429591 72 73 74 75 76
5 Mary 245887 92 95 79 89 90
6 Paul 97522 99 3 55 60 72
并想添加2列。测验平均值和考试平均值。我一直很难让任何代码工作,任何人都有任何想法?
答案 0 :(得分:4)
你的意思是这样的......?
> transform(df,
+ QuizAverage=rowMeans(cbind(Quiz1, Quiz2)),
+ ExamAverage=rowMeans(cbind(Exam1, Exam2, Exam3)))
Name id Quiz1 Exam1 Exam2 Quiz2 Exam3 QuizAverage ExamAverage
1 Susan 123412 50 47 33 67 79 58.5 53.00000
2 John 548963 38 61 75 59 65 48.5 67.00000
3 Bob 234563 89 97 85 88 92 88.5 91.33333
4 Bill 429591 72 73 74 75 76 73.5 74.33333
5 Mary 245887 92 95 79 89 90 90.5 88.00000
6 Paul 97522 99 3 55 60 72 79.5 43.33333
答案 1 :(得分:1)
转换函数确实完成了工作,但是在不使用转换函数的情况下,可以非常轻松地在R中创建列。
添加列也可以通过以下方式完成:
> df$QuizAverage = (df$Quiz1 + df$Quiz2) / 2
> df$ExamAverage = (df$Exam1 + df$Exam2 + df$Exam3) / 3
此站点为操作数据帧提供了非常好的参考。 HowToinR.weebly.com