1

クリップボードから 4 列のデータを取得して分割し、列を追加して再結合し、テキスト ファイルとしてエクスポートできる関数を作成しました。

xyztoinp <- function(x) {
    x <- read.table(file="clipboard") 
    a <- x[,-1] 
    b <- x[,1]
    c <- ifelse(b == "C", 6,
    ifelse (b == "O", 8,ifelse (b == "H", 1, 3)))
    x <- cbind(b,c,a)
    write.table(x, file="IRCoutput", quote = FALSE,
    sep = "\t", row.names = FALSE, col.names = FALSE)
}

2 つの質問があります:-

この関数で作成したテーブルを含むファイルを作成して、そのテーブルをテキストの途中に貼り付けることはできますか?

例えば

text_text_text_text_text_text_text_
text_text_text_text_text_text_text_

Neatly formated table

text_text_text_text_text_text_text_
text_text_text_text_text_text_text_

次に、ファイル名を変数として受け取るように関数を変更しようとしました。つまり、xyztoinp <- function(x, NewFileName) {

など...しかし、これは新しいファイル名で出力を生成しませんでした。誰もこれがどのように行われるか知っていますか?

これが私の作業コードです。

xyztoinp <- function(x) {
     x <- read.table(file="clipboard")
     a <- x[,-1]
     b <- x[,1]
     c <- ifelse(b == "C", 6,
     ifelse (b == "O", 8,
     ifelse (b == "H", 1, 3)))
     x <- cbind(b,c,a)
     zz <- file("NewFile.inp", "w")
     cat("text", " text",
     "text",
     "",
     "text",
     "text",
     "text", file = zz, sep = "\n")
     write.table(x, file=zz, quote = FALSE,
     sep = "\t", row.names = FALSE, col.names = FALSE)
     cat("text",ファイル = zz)
     閉じる (zz)
}

ありがとう、特に@Greg。ps 関数内でファイル名を変更することはできませんでしたが、上記には満足しています。

4

1 に答える 1

1

テーブル (またはグラフ、出力など) をテキストに挿入する一般的な理由は、ある種の自動レポートを作成するためです (そうでない場合は、実際の質問に回答できるように詳細を教えてください)。 )。

適切にフォーマットされた表 (およびその他のもの) を使用して自動化されたレポートを作成するには、テンプレートを作成し、それを処理してレポートを作成するのが最善の方法です。詳細については、knitr パッケージを参照してください (odfweave パッケージや sweave 関数なども使用できますが、knitr がおそらく最も一般的です)。

レポート テンプレートを事前に作成したくない場合の別のオプションは、pander パッケージです。

pander または Knitr に切り替えることで、2 番目の質問も解決できる場合がありますが、そうでない場合は、何を試し、何が起こったのかを確認して、なぜうまくいかなかったのか、どうすればよいのかを知る必要があります。

于 2013-01-03T15:32:46.653 に答える