2017-04-13 66 views
0

我有58個數據命名爲:h5,h6,... h64。 我想一次運行所有腳本,並將結果保存在1 新數據文件中。這是我的腳本:如何一次運行多個數據幀中的腳本?

t <- read.table("h5",header = F, row.names=1) 
cor(t) 
(cor(t))^2 
lm(t$V3 ~ t$V2, data=t) 

我知道讀所有的數據文件一次,我可以使用:

myFiles <- list.files(pattern="h.*") 

但對於其餘的我不知道如何做一個循環或如何存儲結果在一個新的數據框中。任何建議?

我顯示在下面我的輸入文件結構:

HO840M3000540481 993.38 1543.1765 
HO840M3000540483 -0.51 1120.8224 
HO840M3000540497 1192.06 1651.3322 
HO840M3004672697 388.5 1140.0917 
HO840M3004672704 426.9 836.3676 
HO840M3006005895 524.65 1301.8218 
HO840M3006972816 1673.99 1389.1919 
HO840M3006988837 188.35 385.6415 
HO840M3006988891 2987.58 1919.2762 
HO840M3006989113 1097.59 1746.4724 
HO840M3007701817 1320.5 1058.4915 
HO840M3007701858 -372.15 1090.6167 
HO840M3007815980 548.58 759.3870 
+0

您可以檢查總行第一計數和創建要填充在每次迭代或寫/重載到一個表追加'write.table(X,文件=「」,追加空data.frame = TRUE)' – timfaber

回答

1

下面是一個在黑暗中拍攝...

myFiles <- paste0("h", 5:64) 
all <- lapply(myFiles, read.table, header=F, row.names=1) 

t1 <- lapply(all, cor) 
t2 <- lapply(all, function(x) (cor(x))^2) 

all.lm <- lapply(all, function(x)lm(V3 ~ V2, data=x)) 

編輯: 我無法重現註釋中的錯誤,基於所提供的數據結構。請參閱下面的執行。

請詳細說明您面臨的具體錯誤。

dat <- structure(list(V2 = c(993.38, -0.51, 1192.06, 388.5, 426.9, 524.65, 
1673.99, 188.35, 2987.58, 1097.59, 1320.5, -372.15, 548.58), 
V3 = c(1543.1765, 1120.8224, 1651.3322, 1140.0917, 836.3676, 
1301.8218, 1389.1919, 385.6415, 1919.2762, 1746.4724, 1058.4915, 
1090.6167, 759.387)), .Names = c("V2", "V3"), class = "data.frame", row.names = c("HO840M3000540481", 
"HO840M3000540483", "HO840M3000540497", "HO840M3004672697", "HO840M3004672704", 
"HO840M3006005895", "HO840M3006972816", "HO840M3006988837", "HO840M3006988891", 
"HO840M3006989113", "HO840M3007701817", "HO840M3007701858", "HO840M3007815980" 
)) 

all <- list(dat) 


lapply(all, cor) 


[[1]] 
      V2  V3 
V2 1.0000000 0.6741098 
V3 0.6741098 1.0000000 

lapply(all, function(x) (cor(x))^2) 

[[1]] 
      V2  V3 
V2 1.0000000 0.4544241 
V3 0.4544241 1.0000000 


lapply(all, function(x)lm(V3 ~ V2, data=x)) 

[[1]] 

Call: 
lm(formula = V3 ~ V2, data = x) 

Coefficients: 
(Intercept)   V2 
    943.3531  0.3354 
+0

我得到這個錯誤:FUN(X [[i]],...)中的錯誤:輸入中沒有可用的行 – zara

+0

無法幫助您不知道自己的數據結構是什麼。 –

+0

我把一部分數據放在我的解釋中,向你展示數據結構如何。同時我沒有h17和h33 – zara