我々は、この形式のCSVファイルを持っている:各列に属する(予想および予測を作る)、それを処理し、我々はデータを読み込み、Rスクリプトを用意してRのCSVから特定の列を読み取って結果をファイルに行ごとに書き込む方法はありますか?
id1, id2, id3, id4, id5
23,24,23,25,23
25,46,23,756,34
23,54,73,83,74
...
し、ファイルになり書き込みます。問題は、現在のところ、CSVの1列/ IDのみを想定していることです。最近、CSVに複数の列を導入しました(上の図を参照)。スクリプトで各列を読み取り、処理し、出力CSVに予測値を格納してから、他の列に対しても同様の処理を実行する必要があります。このスクリプトは、次のとおり
library("forecast")
data = read.csv("data.csv")
seasonal_per <- msts(data,seasonal.periods=c(24,168))
best_model <- tbats(seasonal_per)
fcst <- forecast.tbats(best_model,h=24,level=90)
dfForec <- print(fcst)
result <- cbind(0:23,dfForec[, 1])
write.csv(result, file="out.csv")
得 'out.csv' が含ま:
(1つのIDに基づいて、24個の予測である)"","V1","V2"
"1",0,5080.64143403622
"2",1,5024.80341301731
"3",2,4697.62476220884
"4",3,4419.10506083084
"5",4,4262.78237536907
"6",5,4187.62903442766
"7",6,4349.19557668607
"8",7,4484.10807151227
"9",8,4247.8575479654
"10",9,3851.37930582024
"11",10,3575.95149262212
"12",11,3494.94340348126
"13",12,3501.35397669752
"14",13,3445.56274629188
"15",14,3362.23686727733
"16",15,3365.56431618894
"17",16,3573.96314478735
"18",17,3945.43879134651
"19",18,4278.44501871782
"20",19,4499.11200729996
"21",20,4574.2023320236
"22",21,4555.22528793877
"23",22,4550.89877322609
"24",23,4517.26727161547
新しいスクリプトにより、各列1を読み取ります1工程、(ハードコードされた列名を参照することなく)、予測、およびこの形式で結果を格納:
"id","V1","V2"
"id1",0,5080.64143403622
"id1",1,5024.80341301731
"id1",2,4697.62476220884
"id1",3,4419.10506083084
"id1",4,4262.78237536907
"id1",5,4187.62903442766
"id1",6,4349.19557668607
"id1",7,4484.10807151227
"id1",8,4247.8575479654
"id1",9,3851.37930582024
"id1",10,3575.95149262212
"id1",11,3494.94340348126
"id1",12,3501.35397669752
"id1",13,3445.56274629188
"id1",14,3362.23686727733
"id1",15,3365.56431618894
"id1",16,3573.96314478735
"id1",17,3945.43879134651
"id1",18,4278.44501871782
"id1",19,4499.11200729996
"id1",20,4574.2023320236
"id1",21,4555.22528793877
"id1",22,4550.89877322609
"id1",23,4517.26727161547
"id2",0,5080.64143403622 <-- id2 predictions begin
"id2",1,5024.80341301731 <-- id2 predictions begin
UPDATE:@Parfaitにより示唆されるようにがコードを試みたが、それは次のエラーを与える:
Error in file(file, ifelse(append, "a", "w")) :
cannot open the connection
In addition: There were 26 warnings (use warnings() to see them)
また、finaldfのデータフレームは空です:
> finaldf
<NA> V1 V2
[1,] NULL 0 1
[2,] NULL 0 1
[3,] NULL 0 1
[4,] NULL 0 1
[5,] NULL 0 1
[6,] NULL 0 1
[7,] NULL 0 1
[8,] NULL 0 1
[9,] NULL 0 1
[10,] NULL 0 1
[11,] NULL 0 1
[12,] NULL 0 1
[13,] NULL 0 1
[14,] NULL 0 1
[15,] NULL 0 1
[16,] NULL 0 1
[17,] NULL 0 1
[18,] NULL 0 1
[19,] NULL 0 1
[20,] NULL 0 1
[21,] NULL 0 1
[22,] NULL 0 1
[23,] NULL 0 1
[24,] NULL 0 1
CSVの値が欠落しているため、スクリプトが壊れています。上記の例を修正して、CSVに欠損値が見つかった場合に「0」とみなしてください。 – learnerX
csv: 'data [is.na(data)] < - 0'で読み込んだ直後に試してみてください – Parfait
次のエラーが表示されることがありました:'データのエラー[is.na(data)] < - 0: 'closure'タイプのオブジェクトはサブセット化されていません 警告メッセージ: is.na(data):is.na()タイプ 'closure''の非(リストまたはベクトル)に適用 – learnerX