No.22361 Re: R レイアウトが異なるテキストファイルの読み込み 【青木繁伸】 2017/05/26(Fri) 18:27
1 行目を読み飛ばせば,あとは,1行目に書いてあるサイズ情報を利用せずとも,read.table がちゃんと読んでくれます。read.table(ファイル名, skip=1)colnames もデフォルトで付けてくれます。
No.22362 Re: R レイアウトが異なるテキストファイルの読み込み 【明石】 2017/05/26(Fri) 18:36
青木先生,
いつもお世話になり,ありがとうございます,明石と申します。
ご教示をいただきまして,大変に助かりました。
ありがとうございました。
No.22366 Re: R レイアウトが異なるテキストファイルの読み込み 【明石】 2017/05/27(Sat) 15:23
青木先生,
いつもお世話になり,ありがとうございます,明石と申します。
昨日はご教示をいただき,大変に助かりました。
ありがとうございました。
ーーー
昨日の画像ファイルのデータ例について,追加のご質問がございます。
どうぞよろしくお願いいたします。
1行目の 300000 200 は,2行目以降の表データのサイズ(行 列)を示しています。
「文字」+「数値(200列)」の組が,300000行の繰り返しがあることを示しています。
(表のサイズは,題材により異なります。 固定ではありません)
2行目以降の表データのサイズ(行 列)を,1行目で明示している理由は,
ケースによっては,数値(200列)の後半に欠損がある場合を想定してからです。
件名の「レイアウトが異なるテキストファイルの読み込み」の真意は,ここにあります。
先生にご教示いただきたいことは,以下です。
お手数をおかけいたします。
・2行目以降に読み込む表データを,matrix型で格納する
・読み込んだ「文字」は,rownamesに格納する
・読み込んだ「数値(200列)」は,1列〜200列に数値データとして格納する。
・ケースによっては,数値(200列)の後半に欠損がある場合への対応として,
データに欠損がある行については,列数が合うように(この場合は 200)
その箇所をNA で補う。
お手数をおかけいたします。
ご教示いただければ,大変に助かります。
どうぞ,よろしくお願いいたします。
No.22367 Re: R レイアウトが異なるテキストファイルの読み込み 【青木繁伸】 2017/05/27(Sat) 16:05
何度かお願いしておりましたが,添付図ではなく,仕様の全てを含む簡単なテストデータと,期待する結果をそえて質問してください。
説明文は曖昧さを含みますし,読み取りが不十分なこともありますから。
その点,データと結果があれば,仕様を満たすプログラムは一意に定まりますから。
「ケースによっては,数値(200列)の後半に欠損がある」というのは,一行ごとに数値の個数が違うことがあるということですか?
以下のようなものでよいですか?file: "test.dat"
=====次行から=====
4 6
a 1 2 3 4 5
b 11 12 13
c 21 22 23 24 25 26
d 31 32 33 34
=====前行まで=====
func = function(fileName) {
s = readLines(fileName, 1)
s = as.numeric(unlist(strsplit(s, " ")))
ncol = s[2]
d = read.table(fileName, skip=1, row.names=1, header=FALSE, col.names=c("name", paste0("V", 1:ncol)), fill= TRUE)
as.matrix(d)
}
func("test.dat")
結果
> a = func("test.dat")
> a
V1 V2 V3 V4 V5 V6
a 1 2 3 4 5 NA
b 11 12 13 NA NA NA
c 21 22 23 24 25 26
d 31 32 33 34 NA NA
> class(a)
[1] "matrix"
No.22368 【御礼】 Re: R レイアウトが異なるテキストファイルの読み込み 【明石】 2017/05/27(Sat) 17:00
青木先生,
いつもお世話になり,ありがとうございます,明石と申します。
今回もご丁寧にご教示いただき,誠にありがとうございます。
御礼を申し上げます。
先生からご指摘を受けましたように,
今後,質問をさせていただく際には,お書きになられたことに沿うようにいたします。
不愉快な思いをさせてしまい,大変に申し訳ございませんでした。
深くお詫びをいたします。
ーーー
今回の質問の内容については,先生がお書きになられた通りです。
私が期待していました通りです。
青木先生からのご教示は,大変に良いお手本となります。
さっそく,勉強をさせていただきます。
今回もありがたいご教示に感謝いたします。
ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る