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