2015-05-01 15 views
-2

我有一個240 * 870大小的數據幀。我使用獨立樣本測試來僅選擇p值爲< 0.05的變量並將它們複製到另一個數據框中。 我聲明的數據幀是空的最初如何創建一個在循環內部增加大小的數據框?

fff<-data.frame() 

然後寫了這個代碼:

它不工作。如何初始化隨時間增加的數據幀?

+0

sry .. imp <-data.frame() –

+1

所以你想選擇一個原始數據幀的列只包含那些具有顯着的p值從t檢驗對'State'? –

+0

您可以引用'fea_names'一次,並在另一個地方'測試$ fea_names'。 'fea_names'是否是'test'的列? (這不太可能,因爲它聽起來像是'test'列的長度,而不是行數 –

回答

0

您可以創建這個data.frame與apply,它適用的功能,數據集的列:

imp <- data.frame(fea_names = names(test), 
        p.value = apply(test, 2, function(e) t.test(e ~ State)$p.value)) 

然後你可以用p值大於0.05更大濾除行:

imp <- subset(imp, p.value < .05) 
+0

Thx david,我剛剛給出了它一去,但它導致以下錯誤,錯誤在if(stderr <10 * .Machine $ double.eps * max(abs(mx),abs(my)))stop(「數據本質上是常量」): 缺少需要TRUE/FALSE的值 –

+0

@ user3473600是否有任何「test」因子或字符向量列,而不是數字向量?例如,請執行'table(sapply(test,class))'並讓我知道結果 –

+0

嗨大衛,是的,有一個屬性(狀態)是因素,你的意思是說,ev en t.test(State〜State)正在執行,這就是爲什麼我得到這個錯誤。 –

相關問題