这是一个例子:
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 列问题中此列表的快速方法的一些想法,将不胜感激?我想我只是在这里缺少一些基本的类型转换或类似的命令,但我似乎被困在这里。