Предположим, у меня есть функция, которая считывает данные из таблицы MySQL, манипулирует ими и возвращает некоторый data.frame. Обратите внимание, что функция - это всего лишь пример, функциональность которого сама по себе не имеет значения ..., например:
addRowSd <- function(table,con,pattern="^Variable") {
dframe <- dbReadTable(con,table)
cn <- colnames(dframe)
qs <- subset(x, x %in% grep(pattern, x, value=TRUE))
dframe$qsd <- sd(t(dframe[,c(qs)]))
return(dframe)
}
mydf$sd <- addRowSd(...)
Я получаю data.frame под названием mydf. Теперь я хотел бы сделать это с вектором символов имен таблиц SQL И присвоить имя возвращаемым фреймам данных соответственно. Если я просто использую
x=lapply(MySQLtablenames,addRowSd,con)
Я получу список под названием x. Конечно, я мог бы убрать из списка и переименовать все, как мне хотелось бы, но мой вопрос:
Как я могу заставить lapply (или другую сопоставимую функцию) возвращать несколько отдельных фреймов данных или, по крайней мере, список, содержащий некоторые имена, полученные из моего вектора символов "MySQLtablenames"?
names(x) <- MySQLtablenames
или в одну строкуx<-setNames(lapply(MySQLtablenames,addRowSd,con),MySQLtablenames)
илиx<-lapply(setNames(MySQLtablenames,MySQLtablenames),addRowSd,con)
- person Marek   schedule 28.10.2010