[解決済み] write.tableしようとすると、未実装の型リストが表示される。
2022-01-29 13:07:05
質問
以下のようなoutputという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
行ID10000395がぐちゃぐちゃになっていることにお気づきでしょうか? それはそれ自身の引用符を含んでいるようで、CSVを台無しにしています。 どうしたら直せますか?
解決方法は?
コメントにもあるように、以下のようにすれば、quot;flatten" が得られるはずです(未検証)。
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
関連
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み] lmer エラー: グループ化係数は観測数未満でなければならない
-
[解決済み】RでAIC中に行数が変化するのはなぜですか?そうならないようにするにはどうしたらいいですか?
-
[解決済み】R: predict() の数値 'envir' 引数が長さ1でない。)
-
[解決済み】randomForestの実行予測で「NA/NaN/Inf in foreign function call (arg 7)」をなくすには?
-
[解決済み] Pandasのデータフレームから行を選択するために値のリストを使用する
-
[解決済み] 辞書のリストをpandasのDataFrameに変換する
-
[解決済み] リストをデータフレームに変換する
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】pandasでカラムの種類を変更する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 変数の型(リスト)が無効です
-
[解決済み】ggplot boxplotでPosition-dodge警告?
-
[解決済み】R ggplot2 で scale_x_discrete を使用する。
-
[解決済み】bstTreeの予測値の混乱行列、エラー:'The data must contain some levels that overlap reference'.
-
[解決済み】「Error in stripchart.default(x1, ...) : invalid plotting method」エラーを回避する方法は?
-
[解決済み】r Error dim(X) must have a positive length?
-
[解決済み】Rで、Error: ggplot2 doesn't know how to handle of data of class numericに対処する。
-
[解決済み】randomForestの実行予測で「NA/NaN/Inf in foreign function call (arg 7)」をなくすには?
-
[解決済み】行列式で「数値/複雑な行列/ベクトルの引数を必要とする」というエラーが発生する?
-
[解決済み】seq_alongはうまくいくが、seqが意図しない結果を生む例とは?