2016-07-18 18 views
1

私は以下のような複数のcsvファイルを持っています。それは実際にこのようになります複数のTukeyHSDテストを1つのテーブルにループしますか?

Library Parameter1 
A  3 
A  2 
A  5 
B  2 
B  1 
B  9 
C  4 
C  2 
C  8 

CSV Table

各.csvファイルは、この場合の「logtPSA.csv」などの化学パラメータにちなんで命名されました。あなたが知ることができるヘッダーは、 "Library"と "Value"です。私は4つの異なるライブラリ:FDA、SMMRNA、VD_SM、およびVD_MVを持っています。

私はANOVAテストとTukeyHSDテストをすべて実行していますが、結果がセルに分割される形式ではRが与えられないため、コピーしてExcelに貼り付けることができます手でそれはかなり退屈になるでしょう。

すべてのファイルを一度に1つずつ処理してテストを実行し、2つのきれいなテーブルに出力する方法があるかどうかは不思議でした(ANOVAの場合は1、TukeyHSDの場合は1 )。

答えて

1

あり、これを行うための複数の方法があり、これは一つだけである:すべてのデータファイルは、それがに

load = list(FILENAME1=data.frame(x=1699:1722,Library=c(rep("FDA",18),rep("SMMRMA",6)),logtPSA=rnorm(1.5,1,24)), 
      FILENAME2=data.frame(x=1699:1722,Library=c(rep("FDA",18),rep("SMMRMA",6)),logtELSE=rnorm(2,1,24))) 

入れの結果をどのように見えるかの例が
setwd("C:/Users/VANBE/Desktop") 
files = dir(".", pattern = ".csv") 
files.dir = paste(getwd(),"/" ,files,sep="") 
load = lapply(files.dir, read.csv2,header=T,sep=",",dec=".") 
names(load)=unlist(strsplit(files,".csv")) # not truly necesary 

インポートデータフレーム

load= lapply(load, function(x) {names(x) = c("number","library","parameter"); return(x) }) # make sure columnnames of al items are identical 

f.AN = function(x){out=aov(parameter ~ library,x) 
AN=summary(out)[[1]]} 
f.TU = function(x){out=aov(parameter ~ library,x) 
TU=TukeyHSD(out)[[1]]} 

AN = do.call("rbind",lapply(load,f.AN)) 
TU = do.call("rbind",lapply(load,f.TU)) 
+0

Hi Wave thあなたは答えてくれますか?私はあなたの答えの最初のセクションまで私はそれが私のために具体的に働くように物事を置き換える方法を見つけることができなかったまでになった。もっと具体的な情報で私の質問を更新しましたので、もう少しお手伝いできることを願っていましたか?私は、もちろん、必要な追加情報を提供することができます。私はRにはまだまだ新しいので、合理的かつ効率的な方法ですべてのファイルとヘッダーの名前を付けることができないのかどうかは分かりませんでした。ありがとうございました! –

+0

私の回答が更新されました。 – Wave

関連する問題