gpt4 book ai didi

r - 尝试 write.table 时未实现的类型列表

转载 作者:行者123 更新时间:2023-12-03 09:16:20 26 4
gpt4 key购买 nike

我有以下 data.table (data.frame) 称为输出:

> head(output)
Id Title IsProhibited
1 10000074 Renault Logan, 2005 0
2 10000124 Ñêëàäñêîå ïîìåùåíèå, 345 ì<U+00B2> 0
3 10000175 Ñó-øåô 0
4 10000196 3-ê êâàðòèðà, 64 ì<U+00B2>, 3/5 ýò. 0
5 10000387 Samsung galaxy S4 mini GT-I9190 (÷¸ðíûé) 0
6 10000395 Êàðòèíà ""Êðûì. Ïîñåëîê Àðîìàò"" (õîëñò, ìàñëî) 0

我正在尝试将其导出为 CSV,如下所示:
> write.table(output, 'output.csv', sep = ',', row.names = FALSE, append = T)

但是,这样做时我收到以下错误:
Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol,  : 
unimplemented type 'list' in 'EncodeElement'
In addition: Warning message:
In write.table(output, "output.csv", sep = ",", row.names = FALSE, :
appending column names to file

我试过转换 Title到一个字符串,使其不再属于 list 类型像这样:
toString(output$Title)

但是,我得到了同样的错误。我的类型是:
> class(output)
[1] "data.frame"
> class(output$Id)
[1] "integer"
> class(output$Title)
[1] "list"
> class(output$IsProhibited)
[1] "factor"

谁能告诉我如何将我的 data.frame 导出到 CSV?

我注意到的另一个奇怪的事情是,如果我写 head(output)我的文本编码不正确(如上所示)而如果我只是写 output$Title[0:3]它将正确显示文本,如下所示:
> output$Title[0:3]
[[1]]
[1] "Renault Logan, 2005"

[[2]]
[1] "Складское помещение, 345 м²"

[[3]]
[1] "Су-шеф"

对此有何想法?它与我最初的问题有关吗?

编辑:这是我的新输出:
Id  Title   IsProhibited    
10000074 Renault Logan, 2005 0
10000124 СкладÑкое помещение, 345 м<U+00B2> 0
10000175 Су-шеф 0
10000196 3-к квартира, 64 м<U+00B2>, 3/5 ÑÑ‚. 0
10000387 Samsung galaxy S4 mini GT-I9190 (чёрный) 0
10000395 Картина \\"Крым. ПоÑелок Ðромат\"\" (холÑÑ‚ маÑло)" 0
10000594 КальÑн 25 Ñм 0
10000612 1-к квартира, 45 м<U+00B2>, 6/17 ÑÑ‚. 0
10000816 Гараж, 18 м<U+00B2> 0
10000831 Платье 0
10000930 Карбюраторы К-22И, К-22Г от газ 21 и газ 51 0

请注意行 ID 10000395 是如何搞砸的?它似乎包含自己的引号,这些引号弄乱了 CSV。我该如何解决?

最佳答案

正如评论中提到的,你应该能够做这样的事情(未经测试)来“扁平化”你的 list成一个字符向量:

output$Title <- vapply(output$Title, paste, collapse = ", ", character(1L))

如前所述,如果您想尝试 unlist方法,您可以通过 output$Title 中的各个值“扩展”每一行,像这样:
x <- vapply(output$Title, length, 1L)          ## How many items per list element
output <- output[rep(rownames(output), x), ] ## Expand the data frame
output$Title <- unlist(output$Title, use.names = FALSE) ## Replace with raw values

关于r - 尝试 write.table 时未实现的类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24829027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com