2017-06-15 1 views
0

"xlsx"パッケージのwrite.xlsx関数を使用しています。rownamesとcolnamesをExcelファイルに追加できる機能はありますか?

for (i in 1:noctry) { 
    for (l in 1:3) { 
     write.xlsx(tab110rev[i,,], file=paste(title[l],l,".xlsx"), sheetName = country_code[i], 
      col.names=FALSE, row.names=FALSE, append=TRUE) 
    } 
} 

noctryは国の数を意味し、その53
countrylistは番号で国コードと国のリストです。
tab110revが配列(値、C(国、産業、年))の構造を有するアレイ

結果は、それぞれの国によって各シートであり、列が年を表す、ISICコードを表す行。

エクセルファイルに列名と行名を追加したいのですが、わかるように、 "col.names"と "row.names"オプションは論理的です。 xlsxファイルの作成時に行名と列を追加できるオプションや機能はありますか?

私が書き込んだxlsxファイルを読み込んで名前を追加し、行名と列名を追加して元に戻すことができますが、xlsxを書き込んで行の名前と列を追加できる関数があるかどうかを知りたいだけです同時に名前。

私は、次のコードを試してみましたし、rownamesはただの数字とCOLNAMESとX1、X2、X3として表示されます

...

for (i in 1:noctry) { 
for (l in 1:3) { 
rownames(tab110rev[i,l,,]) <- c(isic_code) 
colnames(tab110rev[i,l,,]) <- c(year) 
write.xlsx(tab110rev[i,l,,], file=paste(title[l],l,".xlsx"), sheetName = country_code[i], 
      col.names=TRUE, row.names=TRUE, append=TRUE) 
} 
} 
+2

これは機能しません: 'col.names = TRUE、row.names = TRUE'ですか? – AK88

+0

文字のベクトルである特定の行名と列名を追加する必要があります。 col.names = TRUEを使用すると、row.names = TRUEよりも行名がTRUEになり、列名はV1 V2 V3になります。 – kim1298

答えて

0

は、単に文字列として行名と列名を定義し、col.namesを使用= TRUE、row.names = TRUE:

+0

ここでの問題は、xlsxファイルを書き込むために使用しているデータが2次元ではないことです。 4次元の配列なので、colnamesとrownamesを4次元配列に直接使うことはできません。 – kim1298

+0

データフレームにn次元がある場合は、それに応じて上記の答えを展開できます。質問を編集して、データ構造を含めた再現可能な例を提供してください。 –

+0

私は自分の質問を編集しました。わかりやすくするために3次元に縮小しました。 forループを使用すると "rownames(tab110rev [i ,, k])< - c(country_code)"が機能しますか? – kim1298

関連する問題