我有一個與R中的xlsx軟件包相關的查詢。我知道如何使用軟件包中的大多數功能,直到現在還沒有遇到任何問題。我將首先顯示我的代碼,然後會問我的問題。
使用R中的xlsx軟件包更新excel電子表格數字
#Code-Section1:
library(xlsx)
data1<-iris
data1<-data1[,c(5,1:4)]
wb <- createWorkbook()
sheet1 <- createSheet(wb, sheetName="Sheet1")
addDataFrame(data1, sheet1, startRow=1, startColumn=1,row.names=FALSE)
saveWorkbook(wb, file="test.xlsx")
rm(data1);rm(sheet1);rm(wb)
#Code-Section1-end:
這部分只是簡單地採用虹膜數據集,並把它變成一個名爲test.xlsx一個Excel電子表格名爲工作表Sheet1工作表。現在,在Excel中我決定通過增加總排添加更多內容到電子表格,讓Excel電子表格的最後兩行是:
virginica 5.9 3.0 5.1 1.8
876.5 458.6 563.7 179.9
我做的另一件事是4個列添加到電子表格包含行總數中的每個數字的百分比。接下來,我想將test.xlsx加載到R工作簿中。我用一些隨機正常值定義了一個名爲temp的新數據框。我的目的是更新test.xlsx文件中的數字,以便行總數和百分比隨後也會改變。根據rnorm(150,5,1)值的輸出,更新電子表格的最後兩行應該是不同的。我將數據框保存到名爲testa.xlsx的新電子表格中。值被更新,但由於某些原因,即使其單元格的值仍爲「= sum(b2:b151)」或「= b2/b $ 152」,行總數和百分比保持不變。
#Code-Section2:
temp <- data.frame(Sepal.Length=rnorm(150,5,1), Sepal.Width=rnorm(150,5,1), Petal.Length=rnorm(150,5,1), Petal.Width=rnorm(150,5,1))
wb<-loadWorkbook("test.xlsx")
f<-getSheets(wb)[[1]]
addDataFrame(temp, sheet=f, startRow=2, startColumn=2,row.names=FALSE,col.names=FALSE)
saveWorkbook(wb, file="testa.xlsx")
#Code-Section2-end:
我的問題是這樣,我怎麼加載工作簿,更新的數字,使得在這些公式的單元格隨後將被更新,然後保存到一個新的Excel文件。我可以用另一種方式做它,但它會需要更多的步驟,我不介意做,但只是更新數字,以便其他單元格會改變會非常方便。再次和我所做的每篇文章一樣,請原諒任何語法錯誤,如果您認爲有必要,可隨時更改此消息。
你是天才,從來不知道該功能前,在幫助PDF無法找到它。非常感謝你 – 2013-02-18 12:23:04