こんてんつ
時系列データのサンプルを簡易的に用意する方法を記述する。今回は、time
とvalue
の値を持つサンプルを作成する。
- 乱数生成を使った作戦
- data.frameでベタ打ち作戦
- csvファイルから読み込む作戦
- (補足)mm:ss形式の行を追加する方法
乱数生成を使った作成
コード
dat <- data.frame( time = runif(30, min = 0, max = 300), value = rnorm(30) ) %>% arrange(time) %>% mutate(time = round(time, digits = 2), value = round(value, digits = 2)+time*0.05)
出力
time value 24.73 1.2765 35.25 2.8025 40.4 1.85 41.61 1.3005 76.63 4.2915 85.84 1.632 117.06 5.493 134.09 5.9745 137.32 6.436 138.69 6.2945 142.5 6.515 154.26 7.923 155.73 7.4765 168.1 8.905 192.52 10.946 197.1 11.065 211.52 12.476 215.73 10.5265 220.98 9.269 249.13 10.0165 250.8 11.17 271.21 11.8405 271.72 14.346 274.44 14.362 280.4 12.26 281.12 13.776 282 14.56 284 11.79 293.47 15.3735 296.67 13.9835
解説
runif(30, min = 0, max = 300)
は0から300の範囲で30個のランダムな値を生成する。rnorm(30)
は正規分布から30個のランダムな値を生成する。data.frame
は一般的には、次の形で利用する。
# データフレームの作成 my_data <- data.frame( Name = c("Alice", "Bob", "Charlie"), Age = c(25, 30, 22), Score = c(95, 89, 75) ) # 作成したデータフレームの表示 print(my_data) #出力 Name Age Score 1 Alice 25 95 2 Bob 30 89 3 Charlie 22 75
その他、arrange(time)
でtime
の昇順にソートを行っている。また、mutate
とround()
で四捨五入をして丸めている。
data.frameでベタ打ち作戦
コード
dat <- data.frame( time = c(24.73, 35.25, 40.4, 41.61, 76.63, 85.84, 117.06, 134.09, 137.32, 138.69, 142.5, 154.26, 155.73, 168.1, 192.52, 197.1, 211.52, 215.73, 220.98, 249.13, 250.8, 271.21, 271.72, 274.44, 280.4, 281.12, 282, 284, 293.47, 296.67), value = c(1.2765, 2.8025, 1.85, 1.3005, 4.2915, 1.632, 5.493, 5.9745, 6.436, 6.2945, 6.515, 7.923, 7.4765, 8.905, 10.946, 11.065, 12.476, 10.5265, 9.269, 10.0165, 11.17, 11.8405, 14.346, 14.362, 12.26, 13.776, 14.56, 11.79, 15.3735, 13.9835) )
csvファイルから読み込む作戦
コード
dat <- read.csv("mydata.csv")
(補足)mm:ss形式の行を追加する方法
dat %>% mutate(time_mmss = sprintf("%02d:%02d", time %/% 60, round(time %% 60))) %>% select(time, time_mmss, value)