簡體   English   中英

R-將矩陣寫入帶有標題和腳注的輸出文件

[英]R - Writing a Matrix to an Output File With a Title and Footnote

目前,我在R中做一個非常自定義的工作,我在其中用以前計算的值填充一個大矩陣。 我使用以下命令將矩陣發送到外部文件:

write.csv(m1, file = "OutputToExcel1.csv")

...其中m1是我感興趣的矩陣,並且我已經設置了適當的工作目錄。

我想給它一個描述性的標題,也可以給它一個腳注。 在尋找解決方案時,除了write.csv之外似乎還有許多命令。

除了sink()之外,有人可以推薦一種簡便,標准和簡便的方法嗎?

如果您不想使用sink() ,則可以在writeLines()語句之間使用file()連接和write.csv() ,但是看起來您必須將write.csv()capture.output() ,這與sink()非常相似。

示例數據:

# matrix for reproducible example
data("Harman74.cor")

dest_file <- "OutputToExcel1.csv"

竅門似乎是使用file(..., open='at')支持多個追加:

if(file.exists(dest_file)) file.remove(dest_file) # need empty file before append

fileConn<-file(dest_file, open='at')
write("Descriptive Title", file = fileConn)
write( capture.output(write.csv(Harman74.cor)), 
       file = fileConn, 
       append=TRUE )
write("Helpful footnote", file = fileConn)
close(fileConn)

file.show(dest_file)

如果您不完全反對使用sink() ,那將非常簡單。 利用可打印到控制台的默認行為write.csv() ,您可以重定向此輸出。

sink(dest_file)
writeLines("Descriptive Title")
cat(write.csv(Harman74.cor))
writeLines("Helpful footnote")
sink()

file.show(dest_file)

以下內容似乎可行,但它可以:

  • 在電子表格的左上方放置一個x
  • 在標題前加上數字1,
  • 將標題放在引號中。

我認為以下內容可能“足夠好?”

setwd("Y:/Zach/")
myfile<-"DSummary.csv"
write.table("Title", myfile)
write.table(m1, myfile, sep=",", col.names=FALSE, append=TRUE)

以下是上述代碼的詳細說明:

setwd("Y:/Zach/")
myfile<-"DSummary.csv"
write.table("Title1: n = ", myfile)
write.table(SchoolCnt, myfile, col.names=FALSE, append=TRUE)
write.table(". Is good enough", col.names=FALSE, append=TRUE)
write.table(m1, myfile, sep=",", col.names=FALSE, append=TRUE)

因此,我分解標准文本字符串和變量的方式非常草率。 關於如何連接它們的任何建議都很棒!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM