0

可能であれば、ベクトル化を使用して R から XLConnect を使用して、Excel ワークブックの複数のシートで NamedRegions に書き込みたいです。

リストがあります: trya $grp1 var1 var2 var3 1455100 459 21 459

$grp2 var1 var2 var3 936710 463 20 463

namedRegions (それぞれが単一のセル) を含むワークシート (Sheet1) を含むワークブック テンプレート (wb1) があります。Sheet1 の namedRegions の名前は、「varn1」、「varn2」、「varn3」です。

Sheet1 のクローンを作成して、trya の各グループのデータを含む個別のシートを作成できます。

cloneSheet(wb1, sheet="Sheet1", name = names(trya))

しかし..これらのシートの NamedRegions にどのように書き込むのですか? NamedRegion ごとに 1 つずつ、3 つの個別のパスを使用して、複数のワークシートに書き込みます。NamedRegion "varn1: コード例の使用は writeNamedRegion(object,data,name of region,header,rownames) です

writeNamedRegion(wb1, trya??? ,name = "varn1",header = FALSE)

わかりません 1. 一般的に、trya[[1]]$var1 のような要素を選択する方法は? 2. という名前のクローンシートをループする方法....名前(trya)?

どんな助けでも大歓迎です。1月

4

1 に答える 1

0

XLConnect の関数/メソッドの多くはベクトル化されています。これは にも当てはまりますwriteNamedRegion。次の例は、単一の呼び出しを使用して適切な名前付き領域にlistofを書き込む方法を示しています。data.framewriteNamedRegion

require(XLConnect)

wb = loadWorkbook("test.xlsx", create = TRUE)

mySheets = paste0("MySheet", 1:3)
myNames = paste0("MyName", 1:3)
myData = list(mtcars, CO2, USArrests)

createSheet(wb, name = mySheets)
createName(wb, name = myNames, formula = paste(mySheets, "$A$1", sep = "!"))

writeNamedRegion(wb, data = myData, name = myNames)

saveWorkbook(wb)
于 2015-12-08T22:07:05.087 に答える