簡體   English   中英

循環遍歷具有唯一值的一列,並按另一列分組以計算方差

[英]Loop through one column with unique values, and group by another to calculate the variance

有人可以幫我解決這個問題。 我有一個如下的數據框:

 Scores    ID     Value
 M1        A       5.67
 M1        A       9.99
 M2        A       10.96
 M1        A       7.89
 M1        B       9.36
 M3        A       4.56
 M2        A       5.55
 M1        B       8.97

在這個數據集中,分數是細胞類型,每個細胞類型的 ID 重復(即 M1 有 3 個 As)我想遍歷每個分數(細胞類型),然后計算每個重復 ID 的分數的方差(在這種情況下 A)。 所以基本上我正在測量每個 ID 內每個分數的可變性(而不是介於兩者之間)。

下面是我想到的代碼,但是.csv文件中的所有值都具有相同的output。

 for (i in df1$scores) {

     T1 <- aggregate(value ~ ID, df1, function(x) c(Var = var(x), Count = length(x)))

     T1

     write.csv(T1,file=paste0(i,"_withinID.csv"))

 } 

提前致謝!

在這里,我們需要遍歷“分數”的unique值,並且aggregate應該基於數據的subset

for(i in unique(df1$scores)) {
    T1 <- aggregate(value ~ ID, subset(df1, scores == i), 
         function(x) c(Var = var(x), Count = length(x)))
   write.csv(T1, file = paste0(i, "_withinID.csv"))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM