[程式] R迴圈結果輸出的問題
------------------------------------------------------------------------
[軟體程式類別]:
R
[程式問題]:
應該算是簡單的資料分析與迴圈。 t-test結果輸出
[軟體熟悉度]:
新手(不到1個月)
[問題敘述]:
我的data大概是長下面這個樣子↓
A10 A11 A12.....A19 A20 A21...........
[1] 1 1 2 1 4 5
[2]
~~~
~~~
[30]
我要做的是將每一列針對綠色字(A1X)和黃色字(A2X)為對比分別做t-test
我的想法是把最大的矩陣分割為兩個小矩陣(normal & tumor)
然後要求他以第一列對應第一列的方式來做t-test
換言之最後要做30個t-test
雖然也可以用最笨的方法慢慢寫:
n1=nomal[1,]
t1=tumor[1,]
t.test(n1,t1)
↑然後重複30遍
不過這樣的寫法實在太冗長了,
所以想試試看用迴圈的方式,但按照現在的寫法只能跑出最後一筆數據
想問問看要怎麼寫才能夠讓他每一筆資料都出現結果
我曾經試過用sink,append=TRUE的方式來寫,但是失敗了Orz
下面把我寫的程式附上,因為我只是個新手,可能有些看起來很奇怪的程式語法
如果有的話希望大家幫忙指正
或是有什麼更好的寫法也請大家不吝賜教<(_ _)>
謝謝大家。
[程式範例]:(有問題的部分是黃色的字)
rm(list=ls())
library(RODBC)
A <- odbcConnectExcel2007("D:/data/Anne.xlsx")
all <- sqlQuery(A,"select*from[Sheet1$]")
nomal <- all[c(2:133)]
tumor <- all[c(134:244)]
n <- NULL
n <- as.vector(n)
a <- NULL
a <- as.vector(a)
i=1
for(i in 1:30)
{
n = nomal[i,]
a = tumor[i,]
e <- t.test(n,a)
i=i+1
e
}
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.165.130.45
→
02/16 21:50, , 1F
02/16 21:50, 1F
→ lovelySky:是matrix沒錯 寫得有點不清楚,我再補充一下好了,謝謝您!02/16 22:29
推
02/17 02:35, , 2F
02/17 02:35, 2F
這個方法我有想過,但不知道該怎麼實際來寫。
所以很對不起,是不是能講得再清楚一些呢?
我的問題在於:
t-test的結果並非一個vector、matrix或是dataframe
這三者的相互轉換方法我知道,但t-test的結果要如何擺到矩陣裡頭呢?
需不需要做些資料類型上的轉換?
剛接觸R,還有很多搞不清楚的地方,有些問題可能很笨.....
還是非常謝謝您<(_ _)>
→
02/17 05:23, , 3F
02/17 05:23, 3F
了解了,本來的寫法normal和tumor的確不是matrix,
後來加上 nomal <- as.matrix(nomal[1:132])
tumor <- as.matrix(tumor[1:111]) 這兩行指令以後就轉為矩陣了
感謝指正<(_ _)>
※ 編輯: lovelySky 來自: 118.165.142.164 (02/17 14:27)
→
02/19 11:23, , 4F
02/19 11:23, 4F
→
02/19 20:24, , 5F
02/19 20:24, 5F