2017-06-23 11 views
0

これは基本的にRのthis questionに相当します。混合リストを貼り付けて文字列に引用符を付ける

私は混合要素のリストがあります:

l = list(-1, "quicksort", NULL) 

をそして、私は文字列にそれを有効にする:

string = '-1, "quicksort", NULL' 

しかし、私は簡単に内部の引用符を維持する方法を見つけ出すことはできませんすべての要素を引用符で囲まずに文字列:

paste(l, collapse = ", ") # WRONG 
# "-1, quicksort, NULL" 

paste(shQuote(l), collapse = ", ") # WRONG 
# '"-1", "quicksort", "NULL"' 

私は解決策がありますが、不器用に思われます。

paste(lapply(l, function(x) if(class(x) == "character") shQuote(x) else x), 
    collapse=", ") 
# '-1, "quicksort", NULL' 

いいえifステートメント)ソリューション?

答えて

0

deparse()リストを削除し、不要な文字を削除します。

gsub("list|[()]", "", deparse(l)) 
# [1] "-1, \"quicksort\", NULL" 
0

私の好適な解決策はgsubもののための必要性を回避し、リスト要素のいずれかのタイプをサポートしてい

paste(lapply(l, deparse), collapse = ", ") 

ことになりました。私はそれも少し読みやすいと思う。

関連する問題