2012-11-18 36 views
2

我想下表保存退出的[R分配列名第一列R表

x <- rnorm(100) 
y <- rnorm(100) 
z <- rnorm(100) 
model <- z ~ x + y 
results <- glm(model) 
pe <- results$coefficients 
vc <- vcov(results) 
se <- sqrt(diag(vc)) 
results.table <- round(cbind(pe, se),3) 
rownames(results.table) <- c("Intercept", "X-Estimate", "Y-Estimate") 
colnames(results.table) <- c("Parameter", "pe", "Se") 
write.table(results.table,file="test.csv",row.names=T,col.names=NA,sep=",") 

但是,我不能爲rownames提供列名:

colnames(results.table) <- c("pe", "Se")  # works 
colnames(results.table) <- c("Param", "pe", "Se") # Doesn't work, incorrect length 

UPDATE:ANSWER

根據評論,這是不可能的。下面是這樣的一個迂迴的方式,如果你有興趣:

rows <- c("Intercept", "X-Estimate", "Y-Estimate") 
results.table <- round(cbind(pe, se),3) 
results.table <- cbind(rows,results.table) 
colnames(results.table) <- c("Parameter", "pe", "Se") 
write.table(results.table,file="test.csv",row.names=F,sep=",",quote=F) 
+0

行名稱是矩陣的屬性而不是矩陣元素中存在的值。他們不在可以命名的「專欄」中。 – jbaums

+0

所以我想這是不可能的,應該只是綁定rownames並給他們一個列名 – mike

回答

3

比你在你的問題的「UPDATE」暗示這將是更短一些:

write.csv(cbind(Parameter = rownames(results.table), results.table), 
      file = "test.csv", row.names = FALSE)