2016-09-28 24 views
0

我正在對非常大的數據表執行chisq.test並嘗試將我的輸出發送到將與主表聯合的單獨列。 我臺迷你版的樣子:發送輸出到單獨的列將被加入到主表中R

altCount refCount 
    8  6 
    3  7 
    4  9 

我寫了一個腳本,將循環chisq.test並送到輸出到單獨的文本文件,但我不能送了它作爲單獨的列。 我的腳本是:

sink("output.txt", append=FALSE, split=FALSE) 
d <- data.frame(a = test1[,1], b = test1[,2]) 
d$newcolumn <- 0 
for(row in 1:nrow(d)){ 
    print(row) 
    print(chisq.test(c(d[row,1],d[row,2]))) 
    d$newcolumn[row] <- 3 
} 

我發現類似的問題在:For loop R create and populate new column with output 作爲輸出我得到的文件看起來像這樣:

data: c(d[row, 1], d[row, 2]) 
X-squared = 0.28571, df = 1, p-value = 0.593 

但我想輸出的樣子:

altCount refCount P-val 
    8  6 0.564 
    3  7 0.03 
    4  9 0.005 

所以,基本上是同一張表,但是新列與p -values

我很新R。你能詳細解釋我做錯了什麼嗎?更多詳細信息

回答

0

該錯誤告訴您無法找到對象i。這並不意味着R看起來不夠好,這意味着變量i不存在。你應該確保i存在。

您爲for循環遍歷1nrow(d)之間的數字,並將其每個循環的值分配給row。很有可能您混合了變量row和變量i。您提供的代碼應該可以工作:

for(row in 1:nrow(d)){ 
    print(row) 
    print(chisq.test(c(d[row,1],d[row,2]))) 
    d$newcolumn[row] <- 3 
} 
+0

感謝您的回覆。你是對的,我的代碼有效,但並不完全如我所願。我編輯了我的問題。 –