今日は、Rの基本的な操作をふりかえるつもりで書いてみる。
自分用なので、あまり体系的でない。
日本語もオブジェクト名にできる
> エックス <- 4 > エックス / 2 [1] 2みたいな感じ。これは、そんな使うことはないけど、知ってても悪くないかな程度。
オブジェクトをまとめる
> x <- c(30, 20) > x / 2 [1] 15 10ベクトル
> y <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) > y <- 1:10 #コロンを使っても連続した整数を指定できる > y[1] #添え字指定でベクトルの最初の要素を抽出 [1] 1> y[1:3] #複数の添え字を指定 [1] 1 2 3ベクトル演算
> x <- 1:5 > x + 1 #ベクトルに1を足す [1] 2 3 4 5 6文字ベクトル
> z <- c("A", "B", "C") #文字ベクトル > z[1] [1] "A"
要因
> #要因(factor)は、カテゴリ変数などを表す > y <- factor(c("A", "B", "C")) > y [1] A B CLevels: A B C> str(y) #オブジェクトの構造を確認 Factor w/ 3 levels "A","B","C": 1 2 3> mode(y) #実態は数値である [1] "numeric"行列
> mat <- matrix(c(1, 2, 3, 4), nrow = 2) > mat [,1] [,2] [1,] 1 3 [2,] 2 4 > > #横方向で要素を埋める指定をする > mat <- matrix(c(1, 2, 3, 4), nrow = 2, byrow = TRUE) > mat [,1] [,2] [1,] 1 2[2,] 3 4
> y <- data.frame( #適当に改行をおこなう、1行で入力しても同じ + english = c(45, 55, 65, 75, 85, 95), + math = c(50, 60, 70, 80, 90, 100)) #閉じ括弧の数に注意 > y[1, ] # 一行すべて抽出 english math 1 45 50 > y[1:3, ] #3行目まで列を抽出 english math 1 45 50 2 55 60 3 65 70 > y[2, "english"] #列名を引用符で囲って指定 [1] 55 > rownames(y) <- c("Michiko", "Taro", "Masako", "Jiro", "Aiko", "Kenta")# yの行番号を名前にする。 > y[-c(1,5),] #添え字にマイナス記号を使うと削除 english math Taro 55 60 Masako 65 70 Jiro 75 80 Kenta 95 100 | |
|
> mean(y$math) # $マークでどの列名かを指定
[1] 75> > attach(y) # attach関数でyを検索パスに登録することで$での指定なしでOK
> mean(math) [1] 75> > y$phys <- c(47, 45, 23, 44, 21, 22) #データの追加もできる
> y[rownames(y) == "Michiko", colnames(y) == "english"] <- 45 #列と行を指定してデータを入れ替えた。== は一致すればTRUE
ループ
> #ループ > x <- c("A", "B", "C") > for(i in 1:length(x)){ + print(x[i]) + } [1] "A"
[1] "B"
[1] "C"
> # lengthはオブジェクトの数だけ繰り返しを行う。
データのいじり方を中心にふりかえってみた。
また、追加で覚えておきたいのは、加筆修正しよう。
また、追加で覚えておきたいのは、加筆修正しよう。
0 件のコメント:
コメントを投稿