2012-11-18 37 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)