如何将princomp结果打印、写入或导出到csv文件

如何将princomp结果打印、写入或导出到csv文件,r,csv,R,Csv,使用princomp,结果不会存储为数据帧,例如,在控制台中运行的“summary(module_LS9)”将显示为表。创建csv文件或任何可以在Excel或Word中格式化输出的表的代码是什么 我试过: 接收器(“摘要模块”LS9.csv) 小结(模块9) 水槽() 这会创建一个csv文件,但值之间不会用逗号分隔 还审判了: write.table(summary(module_LS9), file = "module_LS9_sum.csv", sep = ",", quote = FA

使用princomp,结果不会存储为数据帧,例如,在控制台中运行的“summary(module_LS9)”将显示为表。创建csv文件或任何可以在Excel或Word中格式化输出的表的代码是什么

我试过:

  • 接收器(“摘要模块”LS9.csv)
  • 小结(模块9)
  • 水槽()
这会创建一个csv文件,但值之间不会用逗号分隔

还审判了:

write.table(summary(module_LS9), file = "module_LS9_sum.csv", sep = ",", quote = FALSE, row.names = F)
得到:


感谢您抽出时间来帮忙

您可以使用这些建议中的任何一个-

1.使用允许您将R输出写入Excel文件的软件包
XLConnect

下面是一个示例,我在其中编写一个模型并将摘要发送到excel:


    library(XLConnect)
    dat <- data.frame(rsp = rnorm(100, 0, 1), 
                      pred1 = rnorm(100, 0, 1), 
                      pred2 = rnorm(100, 0, 1))
    model <- lm(rsp ~ pred1 + pred2, data = dat)
    writeWorksheetToFile("model1.xlsx", 
                     data = summary(dat), 
                     sheet = "summary", 
                     header = TRUE,
                     clearSheets = TRUE)


库(XLConnect)

dat这里有一个
as.data.frame
方法,您可以使用:

as.data.frame.summary.princomp <- function(x, ...) {
  vars <- x$sdev^2
  vars <- vars/sum(vars)
  type.convert(
    as.data.frame(
      rbind(`Standard deviation` = x$sdev, `Proportion of Variance` = vars, 
          `Cumulative Proportion` = cumsum(vars))
    )
  )
}

as.data.frame.summary.princomp我找不到保存摘要的方法,但是保存一个

comp<-princomp(base,cor=T)
var<-comp$sdev^2
write.csv(var,file="variance.csv")

谢谢!2) 此解决方案正是我所需要的,但它返回:as.data.frame.default(x[[I]],optional=TRUE,stringsAsFactors=stringsAsFactors)中的错误:无法将类“summary.princomp”强制为data.frame 3)stargazer太复杂,需要将其作为CSV在Word中格式化。谢谢如果您检查
str(摘要(模块LS9))
您将看到它是一个列表。试着在
getAnywhere(“print.summary.princomp”)
中学习代码,看看是否可以根据自己的需要进行调整。非常感谢!试过了,得到了:is.finite中的错误(x):没有为“list”类型实现默认方法,这最终对我有效:x我不知道我的代码如何调用
is.finite
。你怎么称呼它的?在写我的答案时,我必须假设一个最低限度的理解。无论如何,如果
module_LS9
是调用
princomp
函数的结果,您可以将其替换为
princomp(USArrests,cor=TRUE)
。抱歉,答案重叠,我当然理解这一部分。这就是我运行的:>res您说过模块_LS9是一个princomp对象。那你为什么打电话给普林斯顿公司?
res <- as.data.frame(summary(princomp(USArrests, cor = TRUE)))
#                          Comp.1    Comp.2    Comp.3     Comp.4
#Standard deviation     1.5748783 0.9948694 0.5971291 0.41644938
#Proportion of Variance 0.6200604 0.2474413 0.0891408 0.04335752
#Cumulative Proportion  0.6200604 0.8675017 0.9566425 1.00000000
comp<-princomp(base,cor=T)
var<-comp$sdev^2
write.csv(var,file="variance.csv")