剛剛發現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.
這將導致一個新的工作表foo_sheet
正在和一家新key
創建的,但不會取代現有薄片因此如果我們嘗試註冊更新後的表格,將會產生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.
這意味着如果我們稍後嘗試使用gs_read("foo_sheet")
訪問新工作表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
這是我的理解是一個可能的解決辦法是先用gs_delete("test1")
刪除工作表,然後創建一個新的。另外也可以用gs_edit_cells()
來清空單元格,但希望有某種形式的覆蓋函數。
在此先感謝!
'gs_edit_cells'存在一個問題。它掛了好幾次。 –