簡體   English   中英

用於R中的循環和表格打印

[英]For Loop and Table Printing in R

我正在嘗試使用for循環來計算表的許多行的置信區間,並且希望輸出更具可讀性。這是數據外觀的摘要。

       QUESTION X_YEAR X_PARTNER  X_CAMP       X_N      X_CODE1 
1     Q1    2011      SCSD           ITC    15       4      
2     Q1    2011      SCSD    Nottingham     4       1      
3     Q1    2011      SCSD           ALL    19       5      
4     Q1    2011        CP           CP1    18       4      
5     Q1    2011       ALL           ALL    37       9      
6     Q1    2012      SCSD           ITC     8       1      
7     Q1    2012      SCSD    Nottingham     8       2      
8     Q1    2012      SCSD           ALL    16       3      
9     Q1    2012        CP           CP1    18       2      
10    Q1    2012        CP           CP1    22       2      
11    Q1    2012        CP            ALL    40      4      

我正在嘗試打印出一個置信區間,包括問題,年份和營地。 我希望輸出是這樣的表格形式

QUESTION   YEAR  CAMP         X   N  MEAN LOWER UPPER
Q1         2011  ITC          4   15  0.26 0.07 0.55
Q1         2011 NOTTINGHAM    1   4   0.25 0.006 0.8

前三列直接取自數據表,后四列取自我使用的置信區間測試。

我當前使用的代碼:

for (i in 1:26){
    print(data[i,1],max.levels=0)
    print(data[i,2],max.levels=0)
    print(data[i,4],max.levels=0)
    print(binom.confint(data[i,6],data[i,5],conf.level=0.95,methods="exact"))
    }

提供的輸出(我的數據比摘要多得多)將非常耗時,無法篩選...

[1] Q1
[1] 2011
[1] ITC
  method x  n      mean      lower     upper
1  exact 4 15 0.2666667 0.07787155 0.5510032
[1] Q1
[1] 2011
[1] Nottingham
  method x n mean       lower     upper
1  exact 1 4 0.25 0.006309463 0.8058796

任何建議表示贊賞!

如果df是數據的名稱,而您只想在QUESTIONQ1地方執行此操作(請參閱注釋),則

library(binom)
df2 <- df[df$QUESTION == "Q1",]
x <- vector("list", nrow(df2))
for(i in seq_len(nrow(df2))) {
    x[[i]] <- binom.confint(df2[i,6], df2[i,5], methods = "exact")
}
cbind(df2[c(1,2,4)], do.call(rbind, x)[,-1])
#    QUESTION X_YEAR     X_CAMP x  n       mean       lower     upper
# 1        Q1   2011        ITC 4 15 0.26666667 0.077871546 0.5510032
# 2        Q1   2011 Nottingham 1  4 0.25000000 0.006309463 0.8058796
# 3        Q1   2011        ALL 5 19 0.26315789 0.091465785 0.5120293
# 4        Q1   2011        CP1 4 18 0.22222222 0.064092048 0.4763728
# 5        Q1   2011        ALL 9 37 0.24324324 0.117725174 0.4119917
# 6        Q1   2012        ITC 1  8 0.12500000 0.003159724 0.5265097
# 7        Q1   2012 Nottingham 2  8 0.25000000 0.031854026 0.6508558
# 8        Q1   2012        ALL 3 16 0.18750000 0.040473734 0.4564565
# 9        Q1   2012        CP1 2 18 0.11111111 0.013751216 0.3471204
# 10       Q1   2012        CP1 2 22 0.09090909 0.011205586 0.2916127
# 11       Q1   2012        ALL 4 40 0.10000000 0.027925415 0.2366374

需要注意的是conf.level = 0.95是默認設置binom.confint ,所以你不需要把它列入你的電話。

暫無
暫無

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

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