在 csv 中写入数据帧时,“‘EncodeElement’中未实现类型‘列表’”

ama*_*man 3 r

我有下面的数据框

df_Place:
    Name|Places
    ----+-----------------------
    abc |delhi
    bcd |mumbai,delhi
    cde |chennai,hyderabad,delhi
    def |mumbai
    efg |bangalore,mumbai
    ghi |delhi,bangalore
Run Code Online (Sandbox Code Playgroud)

我想要矩阵形式的位置,所以我做了以下操作

df_Place$matrix<-as.matrix(strsplit(df_Place$Place,","))
Run Code Online (Sandbox Code Playgroud)

我得到下面的数据框

Name|Places                 |matrix
----+-----------------------+------------------------------
abc |delhi                  |delhi
bcd |mumbai,delhi           |c("mumbai","delhi")
cde |chennai,hyderabad,delhi|c("chennai","hyderabad","delhi")
def |mumbai                 |mumbai
efg |bangalore,mumbai       |c("bangalore","mumbai")
ghi |delhi,bangalore        |c("delhi","bangalore")
Run Code Online (Sandbox Code Playgroud)

现在,在尝试将其写入 csv 时, write.csv(df_Place,"tx.csv") 出现以下错误:

.External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol, 中的错误:“EncodeElement”中未实现的类型“list”**

但如果我删除矩阵列,那么它就会成功写入。

我知道这将是非常基本的,但是有人可以解释这背后的原因吗?

tim*_*ber 7

它与将矩阵(具有多个维度)写入 df 相关,其中多个列没有维度(向量)。我发现这个解决方案有效(请参阅将 R 中的数据帧输出到 .csv

# First coerce the data.frame to all-character
df_Place2 = data.frame(lapply(df_Place, as.character), stringsAsFactors=FALSE)

# write file
write.csv(df_place2,"tx.csv")
Run Code Online (Sandbox Code Playgroud)