2013-06-26 22 views
2

我想將R的線性模型計算結果傳遞給Excel中的工作表。這樣做,我使用XLConnect用下面的代碼:R:XLConnect沒有傳遞變量名

x <- 1000:2000 
y <- 3*x+rnorm(length(x)) 
fit <- lm(y~x-1) 
result <- summary(fit)$coeff 

print(result) 

require(XLConnect) 
wb <- loadWorkbook("/Users/andreas/test1.xls", create = TRUE) 
createSheet(wb, name = "test") 
writeWorksheet(wb, result, sheet = "test", startRow = 1, startCol = 1) 
saveWorkbook(wb) 

然而,問題是,XLConnect沒有通過coeffiecient(S)到Excel的名稱(這裏:X),儘管它們正確地打印出來。

有沒有人有關於這個問題的想法?

我將不勝感激任何幫助。

安迪

回答

0

您可以單獨傳遞係數表的名稱到值:

writeWorksheet(wb, colnames(result), sheet="test", startRow=1, startCol=2) 
writeWorksheet(wb, rownames(result), sheet="test", startRow=2, startCol=1) 
writeWorksheet(wb, result, sheet="test", startRow=2, startCol=2) 
+0

喜康大井,非常感謝你的幫助。不幸的是,你的解決方案不起作用。如果我做名字(結果)它返回NULL。你對 – Andy

+0

有什麼想法啊,我沒有看到你從'summary'獲得係數表。我以爲你只是在做'coef(fit)'。 –

+0

謝謝,這很好。雖然,我不明白你爲什麼要創建nr和nc,如果你以後不使用它們。 – Andy

4

在這種情況下的變量名作爲rowname一旦result被轉換成數據幀結束。有一個在writeWorksheet稱爲rownames參數:

wb <- loadWorkbook("~/Desktop/test1.xls", create = TRUE) 
createSheet(wb, name = "test") 
writeWorksheet(wb, result, sheet = "test", startRow = 1, startCol = 1,rownames = "var") 
saveWorkbook(wb)