[解決済み] 固定幅テキストファイルの読み込み
2023-01-31 19:46:11
質問
この醜いフォーマットのデータセットをRのセッションに読み込もうとしています。 http://www.cpc.ncep.noaa.gov/data/indices/wksst8110.for
Weekly SST data starts week centered on 3Jan1990
Nino1+2 Nino3 Nino34 Nino4
Week SST SSTA SST SSTA SST SSTA SST SSTA
03JAN1990 23.4-0.4 25.1-0.3 26.6 0.0 28.6 0.3
10JAN1990 23.4-0.8 25.2-0.3 26.6 0.1 28.6 0.3
17JAN1990 24.2-0.3 25.3-0.3 26.5-0.1 28.6 0.3
という行を読むことができます。
x = readLines(path)
しかし、このファイルはセパレータとして'空白'と'-'が混在しており、私は正規表現の専門家ではありません。 これをきれいなRデータフレームにするために、どんな助けでも感謝します。 ありがとうございます。
どのように解決するのですか?
これは固定幅のファイルです。使用方法
read.fwf()
を使って読み込んでください。
x <- read.fwf(
file=url("http://www.cpc.ncep.noaa.gov/data/indices/wksst8110.for"),
skip=4,
widths=c(12, 7, 4, 9, 4, 9, 4, 9, 4))
head(x)
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 03JAN1990 23.4 -0.4 25.1 -0.3 26.6 0.0 28.6 0.3
2 10JAN1990 23.4 -0.8 25.2 -0.3 26.6 0.1 28.6 0.3
3 17JAN1990 24.2 -0.3 25.3 -0.3 26.5 -0.1 28.6 0.3
4 24JAN1990 24.4 -0.5 25.5 -0.4 26.5 -0.1 28.4 0.2
5 31JAN1990 25.1 -0.2 25.8 -0.2 26.7 0.1 28.4 0.2
6 07FEB1990 25.8 0.2 26.1 -0.1 26.8 0.1 28.4 0.3
更新
パッケージ
readr
(2015年4月リリース)は、シンプルで高速な代替手段を提供します。
library(readr)
x <- read_fwf(
file="http://www.cpc.ncep.noaa.gov/data/indices/wksst8110.for",
skip=4,
fwf_widths(c(12, 7, 4, 9, 4, 9, 4, 9, 4)))
速度の比較
readr::read_fwf()
は
utils::read.fwf ()
.
関連
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
[解決済み] 文字列ベクトルを代入して、列名を持つ空のデータフレームを作成する?重複
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
-
[解決済み] ggplot2 の軸ラベルを回転させ、間隔を空ける
-
[解決済み] 関数のソースコードを見るにはどうしたらいいですか?
-
[解決済み] Rでテキスト行をファイルに書き込む
-
[解決済み] データフレーム内のランダムな行をサンプリングする
-
[解決済み] ggplot2 Rプロットで軸の制限を設定するには?
-
[解決済み] ggplot2 の棒グラフで棒を並べる
-
[解決済み】set.seed関数を使用する理由
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
R言語のエラーメッセージと関連する解決策
-
R plot.new() のエラー : 図形の余白が大きすぎる
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
Rの警告 "条件の長さが1より大きいので、最初の要素しか使えない "に対する解決策
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
-
[解決済み] パッケージ 'xxx' は利用できません (for R version x.y.z) 」という警告にどのように対処したらよいですか?
-
[解決済み] ベクトル中のある要素のインデックスを求めるR関数はありますか?
-
[解決済み】ggplot2で軸のタイトルやラベルの大きさを変更する。
-
[解決済み】data.frameのグループごとの平均値【重複】について