我想使用xtabs()函数(在R中)创建一个给定的3列数据框架的单一应急表。下面的代码在2列中运行良好。
xtabs(~B + C, data = theData) #contingency table for two columns
但当我再添加一个属性时,我得到一个错误。
xtabs(~B + C + mean(A), data = theData)
Error in model.frame.default(formula = ~B + C + :
variable lengths differ (found for 'mean(A)')
例如,对于下面的数据框
A B C
1 b1 c1
2 b1 c1
3 b1 c2
1 b1 c2
4 b2 c2
7 b2 c1
输出应该是这样的。
B C A
b1 c1 1.5
c2 2.0
b2 c1 7.0
c2 4.0
创建一个表格的正确方法是什么? 将一列的平均值跨越其他(不同)两列?谢谢你的建议
我们可以使用 xtabs
归纳输出后,用 aggrregate
xtabs(A ~ B + C , data = aggregate(A ~ B + C, theData, FUN = mean))
# C
#B c1 c2
# b1 1.5 2.0
# b2 7.0 4.0
或者在这种情况下,输出可以只是 aggregate
aggregate(A ~ B + C, theData, FUN = mean)
# B C A
#1 b1 c1 1.5
#2 b2 c1 7.0
#3 b1 c2 2.0
#4 b2 c2 4.0
不建议将某些值改为空白。""
因为它可能会与其他步骤产生问题