как получить доступ к отдельному листу Excel, применить функцию и свернуть результат в R? - PullRequest
0 голосов
/ 19 марта 2012

Я хочу прочитать несколько листов в R, и я смог прочитать их, используя следующий код: библиотека (gdata)

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 для каждого отдельного листа, а затем объединить результат для каждого листа в симпатичную таблицу.

Для каждого листа я хотел бы # изменить данные второго столбца $ cens <- ifelse (data $ cens == "U", 1,0) </p>

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)

1 Ответ

2 голосов
/ 19 марта 2012

Вы можете использовать lapply для запуска функции для каждого элемента списка и rbind для объединения результатов.

dat <- lapply(dat, summaryStats)
result <- do.call(rbind, dat)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...