Giả sử tôi có một chức năng đọc dữ liệu từ một bảng MySQL, thao tác nó và trả về một số data.frame. Lưu ý rằng chức năng chỉ là một ví dụ có chức năng không quan trọng ..., ví dụ:Làm thế nào để trả về một data.frame với một tên đã cho từ một hàm?
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(...)
Tôi kết thúc với một data.frame được gọi là mydf. Bây giờ tôi muốn làm điều này với một vector ký tự của các tên bảng SQL và đặt tên cho các khung dữ liệu trả về tương ứng. Nếu tôi chỉ sử dụng
x=lapply(MySQLtablenames,addRowSd,con)
Tôi sẽ nhận được một số danh sách được gọi là x. Tất nhiên tôi có thể không công bố và đổi tên tất cả mọi thứ theo cách tôi muốn, nhưng câu hỏi của tôi là:
Làm thế nào tôi có thể thực hiện (hoặc một hàm khác có thể so sánh) trả về nhiều datafram đơn hoặc ít nhất một danh sách chứa một số tên từ vector nhân vật của tôi "MySQLtablenames"?
có thể nó có thể giúp làm cho các chức năng addRowSd gán một số tên để data.frame trở ... –
thế nào về 'tên (x) <- MySQLtablenames' hoặc trong một dòng' x <-setNames (lapply (MySQ) Ltablenames, addRowSd, con), MySQLtablenames) 'hoặc' x <-lapply (setNames (MySQLtablenames, MySQLtablenames), addRowSd, con) ' – Marek