fwfを持つベクトルの行(ファイルではない)をデータフレームに読み込むにはどうすればよいですか?リテラルデータからのデータフレーム(ファイルではない)R
今は2つの方法が考えられますが、実際にはもっと良い方法が必要だと私は思っています。任意のアイデアが評価されます。
data.frame()
+substring()
を使用してください。それは仕事をしますが、データが "不揃い"(それは、以下のようなブロックによって)であれば簡単には一般化できません。私はここの答えからそれを得た:Read fixed width text file読者から
write_lines()
とread_fwf()
を読んでください。私は外部ファイルを書くことを避けたい。実際には、read_fwf()
はリテラルデータで直接作業する必要がありますが、動作させることはできません。行の文字列/ベクトルをパスとして理解し続けます。ような何か:write_lines(literaldata, "fwf_sample.txt") read_fwf("fwf_sample.txt", fwf_widths(rep(8, 12)))
データサンプルがエラーにつながるコードで、以下に従います。事前に
literaldata <- "CHEXA 278375 2 419991 419976 418527 418528 434131 434116+ 420108 420107
CHEXA 278376 2 420028 420029 419994 419997 434168 434169+ 434134 434137
CHEXA 278377 2 419961 418516 418517 419956 434101 420119+ 420118 434096
CHEXA 278378 2 419965 418519 418520 419967 434105 420116+ 420115 434107
CHEXA 278379 2 419965 419984 420025 419971 434105 434124+ 434165 434111
CHEXA 278380 2 418521 419972 419967 418520 420114 434112+ 434107 420115"
library(readr)
lines<-read_lines(literaldata)
# The code above is just to get a reproducible example similar to the one I get in the data cleaning process
read_fwf(lines, fwf_widths(rep(8, 12)))
Error: 'CHEXA 278375 2 419991 419976 418527 418528 434131
434116+ 420108 420107CHEXA 278376 ...
おかげで、それはあなたがやっているで正確に何
'read_fwf(textConnectionの(literaldata)、fwf_widths(担当者(8,12)))'だろう返信ジョブ? –
'read_fwf()'がリテラルデータをパス名と間違えるところにコードを投稿できますか?あなたが投稿したデータでうまく動作するからです。 –