ライブラリのインポート
library(aaaaa)
csvの読み込み
data = read.table("data.csv", sep=",", skip=6, header=T)[, c(1,2,3)]
オプションの説明
-
sep=","
csvファイルなので -
skip=6
6行目から読み込む -
header=T
headerを認識する -
[, c(1,2,3)]
1,2,3列目だけを抽出
tips
-
read.csv
でもいいかも。ただしこの場合はデフォルトがheader=T
となっているので注意 - マルチバイトエラーが出た時は、
fileEncoding="CP932"
をオプションとして付け足す
データの可視化
データの先頭を表示
> head(data)
NS EW UD
1 0.00 0.03 0.00
2 0.00 0.00 0.00
3 0.03 0.00 -0.03
4 0.03 0.00 -0.03
5 0.03 0.00 -0.03
6 0.03 0.00 -0.03
列ごとの特徴を見る
> summary(data)
NS EW UD
Min. :-818.0160 Min. :-476.8670 Min. :-315.1300
1st Qu.: -0.5380 1st Qu.: -0.6580 1st Qu.: -0.3890
Median : 0.0000 Median : -0.0300 Median : 0.0000
Mean : -0.0042 Mean : -0.1191 Mean : -0.0157
3rd Qu.: 0.5380 3rd Qu.: 0.3890 3rd Qu.: 0.3590
Max. : 578.9700 Max. : 617.2800 Max. : 332.2370
特定の列を抽出
> sub_data = data$NS
配列の長さ
> sample_size = length(sub_data)
変数に代入
# 両方同じ
> sampling_rate = 50
> sampling_rate <- 50
配列を作成
つまりはPythonでいうところのnumpy.linspace
をしたい
> t = seq(0, sample_size/sampling_rate, length=sample_size)
グラフに描画
# 文字の大きさとサイズの指定
> par(ps = 15, pin = c(5,3))
# 描画
> plot(t, ns)
配列で詰まったところ
Rの配列からインデックスを指定してデータを抽出しようとしたが、*
で掛け算しようとすると上手くいかなかった
> array[20*sampling_rate : 100*sampling_rate]
面倒だが、変数に代入してから抽出するしかなさそう
> start = 20*sampling_rate
> end = 100*sampling_rate
> array[start:end]