質問: Rでlistに入った文字を結合してhanabitaikaiという文字を出力するコードを書きたいのですがうまくいきません. 以下のコードのどこが間違っているので
回答: 本質的にはそこそこちゃんと書けていように見えるので できるだけ変更箇所が少なくなるような修正にしてみました 以下で実行確認できます sapply で関数をcallしてしまうとリストが戻り値になるので このコードの場合は、apply 系はどれも使えないです。 単純な関数呼び出しには、do.call かcall が使えます。 「+」 は文字列に対しては未定義の演算子なので使えません。 R言語標準では文字列の扱いは手間になりますが 以下のコードでは、&演算子を自分で定義して Excelのように文字列結合できるようにしています # &演算子の定義 "&" <- function(e1, e2) { if (is.character(c(e1, e2))) { paste(e1, e2, sep = "") } else { base::"&"(e1, e2) } } A<-list("hana","bitai","kai") do.call(function(u){ f<-character() for(i in u){ # 普通は、以下のようにして結合します # f<-paste(f , i,sep ="") # & 演算子を定義すればこれでもOK f<-f & i # + は文字列に対しては未定義の演算子なので使えない # f<-f + i } return(f) },list(A) )