2

新しいデータが入ってくると、パッケージを使用して複雑なデータセットのクリーニングを支援しようとしていxlsxます。次のようなワークフローを目指しています。

  1. データを R にインポートし、コード化されたデータのクリーニングを行います。
  2. データをxlsファイルとして書き込み、ドロップボックスフォルダーに保存します
  3. R に詳しくない同僚 (および私自身) は、手動でデータ クリーニングを行うことができます。
  4. さらにデータが入ってきたら、手順 1 を繰り返して既存の XLS ファイルに追加し、強調表示、コメント、太字などの書式設定を保持します。

最後に、これが LibreOffice (私が使用している Linux) と Excel (同僚が使用している Windows) で機能することを望んでいることに関連性があるかどうか、私は興味があります。

現時点では、既存のスプレッドシートにデータを完全に書き直さずに追加する方法を見つけるのに苦労しています (したがって、書式設定が失われます)。

irisプリロードされたデータセットを使用して、私ができるようにしたいことの例を次に示します。

#Import data, do some coded cleaning:
data = iris[1:10,]
data$Sepal.Ratio = with(data, Sepal.Length/Sepal.Width)
data$Sepal.Length = NULL
data$Sepal.Width = NULL
data$Species = as.character(data$Species)

#Write to excel...
write.xlsx(data,file="ss.xls")

#Manually make some changes
system('soffice /path/to/ss.xls')

(スクリーンショットを参照) ここに画像の説明を入力 ここに画像の説明を入力

#Load and clean more data...
data = iris[11:20,]
data$Sepal.Ratio = with(data, Sepal.Length/Sepal.Width)
data$Sepal.Length = NULL
data$Sepal.Width = NULL
data$Species = as.character(data$Species)

#Append it to the existing spreadsheet, while preserving previous formatting
???

このappend=TRUEオプションは、単にワークシートをワークブックに追加するように設計されているため、ここではあまり役に立ちません。

または、スプレッドシートの書式設定をある種の R オブジェクトに読み取り、それを書き換えられたファイルに適用して、次のようなことを行うことは可能ですか?

olddat = read.xls('/path/to/ss.xls')
formatting <- someFunctionToExtractFormatting('/path/to/ss.xls')
newdata = rbind(olddata,data)
write.xlsx(newdata,file="ss.xls", FORMATTING=formatting)

R から書式設定を定義できる同様のコマンドがいくつかありますが、書式設定を読み取ってから再書き込みできるコマンドが見つかりません。

4

1 に答える 1

1

The XLConnect package is able to do this kind of stuff. Have a look at ? appendWorksheet.

library(XLConnect)
wb <- loadWorkbook( "ss.xlsx" )
appendWorksheet( wb, data, sheet = "iris" ) # iris is the sheet you want to append data to
saveWorkbook( wb )
于 2014-08-08T12:34:26.767 に答える