7

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(...)

mydfというdata.frameになってしまいます。ここで、SQLテーブル名の文字ベクトルに対してこれを行い、それに応じて返されたデータフレームに名前を付けます。使うだけなら

x=lapply(MySQLtablenames,addRowSd,con)

xというリストを取得します。もちろん、リストから外して、好きなように名前を変更することもできますが、私の質問は次のとおりです。

lapply(または別の同等の関数)が複数の単一データフレーム、または少なくとも文字ベクトル「MySQLtablenames」から派生したいくつかの名前を含むリストを返すようにするにはどうすればよいですか?

4

2 に答える 2

11

自分で答えを見つけました:

assign("somename",dframe,envir = .GlobalEnv)
于 2010-10-28T10:24:05.110 に答える
1

sapply に文字ベクトルを指定すると、返されたリストの項目に、指定された文字ベクトル (USE.NAMES のデフォルトは TRUE) で名前が付けられます。返される data.frames に応じて、simplify=FALSE も使用します。予測できない結果を得る

x=sapply(MySQLtablenames,addRowSd,con, simplify=FALSE)
于 2010-10-28T11:43:34.400 に答える