こんてんつ
時系列データのサンプルを簡易的に用意する方法を記述する。今回は、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()で四捨五入をして丸めている。
contents-open.hatenablog.com
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)
