次に例を示します。
a.df<-data.frame(a1=c("A,B,C", NA, "A,B,C","",NA, "B,C"))
grep(pattern="B", x=a.df$a1, value=FALSE)
b<-sapply(X=a.df$a1, FUN=grep, pattern="B", value=FALSE)
a.df$b1<-b
a.df を見ると、「通常の」data.frame であるという印象があります。
a.df
a1 b1
1 A,B,C 1
2 NA integer(0)
3 A,B,C 1
4 integer(0)
5 NA integer(0)
6 B,C 1
しかし、a$b1 を詳しく調べると、値のリストがまだそこにあることがわかります。
a.df$b1
[[1]]
[1] 1
[[2]]
integer(0)
[[3]]
[1] 1
[[4]]
integer(0)
[[5]]
integer(0)
[[6]]
[1] 1
したがって、 a.df を保存しようとすると
write.csv(a.df, file="a_df.csv")
次のエラーが表示されます。
Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol, :
unimplemented type 'list' in 'EncodeElement'
このリストを data.frame 列の問題で解決する簡単な方法についてのいくつかのアイデアをいただければ幸いです。ここで基本的な型変換または同様のコマンドが欠落しているだけだと思いますが、ここで立ち往生しているようです。