2012-03-19 1 views
0

私はRの中に複数のシートを読みたいと私は、次のコード使用してそれらを読むことができました:私は、単純な統計情報を提供するために簡単な関数を書いた ライブラリ(GDATA)個々のシートをExcelにアクセスし、関数を適用し、Rを折りたたむ方法は?

dataFile <- file.path('.../Desktop/readMultiSheetExample.xls') 

dat<-NULL; for (i in 1:2) { dat[[i]]<-read.xls(dataFile,sheet=i,head=T) } 

Sheet 1 
obs cens 
2.9 D 
1.7 D 
1.2 U 
7.4 D 
1.2 U 

Sheet 2 
obs cens 
2.4 D 
0.5 D 
1.4 U 
1.5 U 
0.4 U 
1.1 U 
1.1 U 

を。個々のシートにアクセスして個々のシートのsummaryStatsを計算し、各シートの結果を素敵なテーブルに結合するコードを書くにはどうすればいいですか?各シートのために

、私は #2番目の列 データ$ CENS <を変更したい - ifelse(データ$ CENSを== "U"、1,0)

summaryStats <- function (data) 
{ 
obs <- data$obs 
cens <- data$cens 

n <- length(obs) 
nCens <- length(cens) 

maxValue <- max(obs) 
minValue <-min(obs) 

result <- data.frame(n,nCens,minValue,maxValue) 
names(result) <- c('N','N.Censored',"Min",'Max') 
return(result) 
+0

あなたの 'summaryStats'関数への' lapply'呼び出しがないかもしれません。 'lapply'は、各リスト要素を訪問し、提供された関数を要素の内容(あなたの場合はdata.frame)に適用します。 –

+0

私はlapplyをどこで使うべきか、より具体的にお考えですか? – Amateur

答えて

2

あなたは実行にlapplyを使用することができます各リスト要素の機能と結果を組み合わせるrbind

dat <- lapply(dat, summaryStats) 
result <- do.call(rbind, dat) 
+0

エラー:Summary.factorのエラー(C(1L、1L、2L、1L、2L、1L、1L、2L、2L、2L、2L、: 合計は意味がありません) – Amateur

+0

@Amateur、そこに –

+0

@RomanLuštrik:あなたが何を意味しているのかまだ分かっていないことは大変残念です。私はRプログラミングにはとても新しいです。何が理解できないのですか?エラーメッセージの意味で自分のコードを修正できない – Amateur

関連する問題