ちょうどgooglesheetsパッケージが見つかりました。私は今、既存のシートのコンテンツのすべてまたは一部を置き換えることができるようにしたいと考えています。R googlesheetsパッケージを使用して、Googleのすべてのコンテンツを置き換えますか?
例:
> library(googlesheets)
> set.seed(10)
> test1 <- data.frame(matrix(rnorm(10),nrow = 5))
> test1
X1 X2
1 0.01874617 0.3897943
2 -0.18425254 -1.2080762
3 -1.37133055 -0.3636760
4 -0.59916772 -1.6266727
5 0.29454513 -0.2564784
> gs_new("foo_sheet", input = test1, trim = TRUE)
これは期待通りに新しいシートを作成します。シートを更新する必要があるとします(このデータは、shinyapps.ioホストされた光沢のあるアプリで使用されています。シート参照を変更するためにアプリを再デプロイする必要はありません)。
> test1$X2 <- NULL
> test1
X1
1 0.01874617
2 -0.18425254
3 -1.37133055
4 -0.59916772
5 0.29454513
私は単にgs_new()
で上書きされますが、次の警告メッセージに実行しようとした:
> gs_new("foo_sheet", input = test1, trim = TRUE)
Warning message:
At least one sheet matching "foo_sheet" already exists, so you may
need to identify by key, not title, in future.
これは新しいkey
で作成された新しいシートfoo_sheet
になりますが、既存のシートを置き換えるものではありません更新されたシートを登録しようとすると、key
というエラーが発生します。
gs_title("foo_sheet")
Error in gs_lookup(., "sheet_title", verbose) :
"foo_sheet" matches sheet_title for multiple sheets returned by gs_ls() (which should reflect user's Google Sheets home screen). Suggest you identify this sheet by unique key instead.
これは、後で新しいシートfoo_sheet
にgs_read("foo_sheet")
でアクセスしようとすると、APIは新しいシートではなく元のシートを返します。
> df <- gs_read("foo_sheet")
> df
X1 X2
1 0.01874617 0.3897943
2 -0.18425254 -1.2080762
3 -1.37133055 -0.3636760
4 -0.59916772 -1.6266727
5 0.29454513 -0.2564784
これは、1つの可能な解決策は、最初のgs_delete("test1")
でシートを削除してから新しいものを作成することができることを私の理解です。代わりに、gs_edit_cells()
で空のセルを空にすることもできますが、何らかの形の上書き機能が期待されていました。
ありがとうございます!
'gs_edit_cells'には現在進行中の問題があります。それは何度かハングアップします。 –