Вам нужно будет как-то указать names(g)
для вашей функции. Самое простое решение выглядит как mapply
.
Кроме того, по какой-либо причине драйвер ODBC для Excel, похоже, не любит точки в именах листов, хотя сам Excel может их обрабатывать. Поэтому вам придется изменить свои имена, например, "Sepal.Length" на "Sepal_Length" или тому подобное.
В полном объеме:
g <- lapply(iris, function(x) as.data.frame(table(x)))
names(g) <- gsub("\\.", "_", names(g))
xl <- odbcConnectExcel("c:/temp/iris.xls", readOnly=FALSE)
mapply(sqlSave, dat=g, tablename=names(g),
MoreArgs=list(channel=xl, rownames=FALSE))
odbcCloseAll()