1
我想编写一个脚本来简化一些数据分析,并在某些时候我需要遇到一些子列表类似于平均值:的R - 条件平均化使用聚合与列表
> temp1[[1]]
Replicate Week Treatment aaa bbb ccc ddd eee
C1_T0 1 0 Cold 1 2 3 4 5
C2_T0 2 0 Cold 1 2 3 4 5
C3_T0 3 0 Cold 1 2 3 4 5
C4_T0 4 0 Cold 1 2 3 4 5
H1_T0 1 0 Hot 1 2 3 4 5
H2_T0 2 0 Hot 1 2 3 4 5
H3_T0 3 0 Hot 1 2 3 4 5
H4_T0 4 0 Hot 1 2 3 4 5
要做到这一点,我尝试使用聚合函数来将所有其他列的平均值作为处理列的函数,但这只对第一列成功,然后返回绝对不是均值的数字。
> temp10 <- aggregate(. ~ Treatment, temp1[[1]], mean)
> temp10
Treatment Replicate Week aaa bbb ccc ddd eee
1 Cold 2.5 1 1 1 1 1 1
2 Hot 2.5 1 1 1 1 1 1
它正确返回意味着通过治疗复制列,但当时我不明白为什么它返回的东西后的不同。我猜想这个数据结构可能与平均函数不兼容,但是我不确定为什么重复平均值是正确的。有没有更好的方法在列表中进行这种有条件的平均,还是将所有东西都重构为数据框会更好?
它看起来像所有的列都是因素。用'sapply(temp1 [[1]],class)'检查。您想要将它们转换为整数。 – jenesaisquoi