2017-07-15 7 views
1

を使用して単一の文字列を形成するためにデータを追加:単一の文字列:私はRで単一の文字列を形成するようにしたいR

list_names <- c("a","b") 
answer <- NULL 
for (name in list_names){ 
    append(answer,name) 
    append(answer,"\n") 
    final <- write.table(df,row.names=FALSE,col.names=FALSE, sep=",") 
    append(answer,final) 
} 
print(answer) 

出力は次のようになります。 以下は、私が形成するために必要なものデータであります

a 
table1 
b 
table2 

しかし、テキストではなくテーブルだけを追加するようです。私はどうすればいいのですか?私はRに新しいです。お勧めします。

答えて

0

appendメソッドは、変数answerの値を変更していません。あなたがそれをしたい場合は、answer <- append(answer, name)のような何かをしなければならない。また、write.tableメソッドは文字列ではなくファイルに出力します。

これは、あなたが探しているものを行います。

library(stringr) 

list_names <- c("a","b") 
answer <- "" 
for (name in list_names){ 
    answer <- str_c(answer,name) 
    names(df) <- NULL 
    final <- str_c(capture.output(print.data.frame(df, row.names = FALSE)) , collapse = "\n") 
    answer <- str_c(answer,final, "\n") 
} 
writeLines(answer) 

これが最後に余分な行を出力します。名前の代わりにリストのインデックスをループすると、これを避けることができます。

+0

あなたが書いたように、write.tableはファイルに出力します。しかし、ここでは、ファイルに保存しているわけではありません。メモリにテーブルを作成するだけです。このテーブルを文字列に追加できれば、Pythonのような文字列になります。また、私はcol.names = FALSE、sep = "、"を指定した私のテーブルの行コードを見ることができます。あなたのコードでこれをどうすればいいのですか? – Ashag

+0

私は上記のコメントの問題を次のように解決しました:final < - str_c(capture.output(write.table(df、row.names = FALSE、col.names = FALSE、sep = "、"))、collapse = "\ n") – Ashag

関連する問題