如何创建一个在循环内增加大小的数据框?

时间:2015-05-01 17:26:37

标签: r

我有一个240 * 870大小的数据框。我使用独立样本测试来仅选择p值<0.05的变量并将它们复制到另一个数据帧。 我最初声明数据框是空的

fff<-data.frame()

然后写了这段代码:

fea_names=names(test)

for( i in 1:length(test))
{
t_test<-t.test(test[,i]~State)
if(t_test$p.value<0.05)
{
cat("feature label->",fea_names[i],"and p-value is->",t_test$p.value,"\n")
**imp$fea_namesi]<-test$fea_names[i]**
}
}

它不起作用。如何初始化随时间增加大小的数据帧?

1 个答案:

答案 0 :(得分:0)

您可以使用apply创建此data.frame,它将函数应用于数据集的列:

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

然后您可以过滤出p值大于.05的行

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