CSV ファイルがあるとします。ファイルの各行には、数値、ベクトル、および日付があります。セミコロンで区切られた各ベクトルの要素。たとえば、この csv ファイルのベクトル y は ";1;2;4;7;2" のようになります。ベクトルの長さが異なります。を使用してこのファイルを読み取ることができませんでした
read.table()
また
read.csv()
ここに書かれていることと同様のことを試しても、アポストロフィを含む .csv ファイルを R に読み込む方法は? . 以下は、CSV ファイルの 3 行がどのように見えるかを簡略化したものです。
1,6,;2;3.1;45;31.2;3,2,;1;1;1;1;1;5,10/22/1938 1:25
2,5,;1;22;12;1.4;66,7,;2;3;4;5;6;7;8;6;9,11/25/1938 1:25
3,1,;1;2;3;4;5;6;7;8;9,3.2,;1;2;3;4;5;6;7;9;10;11,11/25/1958 1:25
ここでは、カンマの間にスペースを入れて、もう少し読みやすくしています
1, 6, ;2;3.1;45;31.2;3, 2, ;1;1;1;1;1;5, 10/22/1938 1:25
2, 5, ;1;22;12;1.4;66, 7, ;2;3;4;5;6;7;8;6;9, 11/25/1938 1:25
3, 1, ;1;2;3;4;5;6;7;8;9, 3.2, ;1;2;3;4;5;6;7;9;10;11, 11/25/1958 1:25
各行には同じ数の ',' があります。行間の唯一の大きな違いは、ベクトルが異なる可能性があることです。フィールドが空白の場合があることに注意してください。出力がリストのリストの形式であることが最も理にかなっていると思います。私は効果的に次のような独自の関数を作成することを考えていました(私はまだリストに精通していないので、私の言語はここから離れている可能性があります)
data <- empty list of a list
while (we haven't reached the end of the file){ #don't know the function to do this
temp = get first line of file #don't know the function to do this
if temp is not empty{ #don't know the function to do this
indices = which(temp==',')
indices.col = which(temp==';')
put temp[1:(indices(1)-1)] in the (counter,1) location of data;
put temp[(indices(1)+1):(indices(2)-1)] in the (counter,2) location of data;
store the vector and deal with the colons somehow in (counter,3) location of data;
}
}
おそらく私が見逃した方法で read.table を使用して、これを行う簡単な方法はありますか。これを行うためにリストのリストを使用するつもりはありません。基本的に、y=mx+b という形式の回帰分析を行いたいと考えています。ここで、x は数値エントリの 1 つ、y はベクトル エントリの 1 つに適用される関数のスカラー出力です (例: sum(vector) = a*行の最初のエントリ + b)。だから多分それを覚えておいてください。また、このファイルでセミコロン以外の文字を使用してベクトルを区切るオプションがあることにも注意してください。