第1回 Rの基本操作

第1回 Rの基本操作

Rの環境設定や、コマンド入力やファイルの読み込みといったRの基本操作を身につける。Rにおけるデータの型と形式について説明する。

【キーワード】
R、R-Studio、ベクトル、行列、データフレーム、関数


  1. R言語での合計を計算する場合 R言語では、数値データの合計を計算する場合、sum()関数を使用します。たとえば、次のような数値ベクトル x を考えます。

a01 <- c(11,21,31,32,41,43,51,52,53,55,57,61,62,71,74,85)

この場合、xの合計はsum(x)で計算できます。

sum(a01) [1] 800     合計

summary(a01)          四分位数


Rで次の命令を行った結果として正しいものが1つある。それはどれか。

round(0.123,1)

 

この問題はスライド等にはありませんが、実際にRを操作する練習 の意味で作成しています。

roundという関数は小数を丸める関数です。必ずしも四捨五入とは一致しません。

カンマのあとは digits =1 と書くこともできます。小数第1位までということです。

 

正答: 0.1

Rで次の命令を行った結果として正しいものが1つある。それはどれか。

round(0.3-0.2-0.1,digits=16)

コンピュータの計算では数値誤差が含まれることがあります。これもスライドにはありません。実際にRを操作して確認ください。

0.3-0.2-0.1 を実際に計算すると-2.775558e-17 と表示されます。1e-17とは10を−17回かけたものという意味で、小数第16位までは0、小数第17位が2です。したがって、小数第16位まで丸めると 0となります。

完全に正しい値ということではありませんが、非常に小さい値ですから実用的にはあまり困ることはありません。また、表計算ソフトで

(0.3-0.2-0.1)*2^55

を計算すると -1  になります。

正答: 0

1-2

Rで次の命令を行った結果として正しいものが1つある。それはどれか。

sum(2:5)

2:5 は2から5までの1刻みの値を意味します。2+3+4+5 ということですから結果は14となります。便利なのでぜひ理解しておいてください。

また、2から10まで2刻みにしたい場合は seq(2,10,by=2) とします。

正答: 14

Rで次の命令を行ったときの結果として正しいものが1つある。それはどれか。

> x01 <- c(118,119,120,121,123)

x01[2:4]

連続した値を意味するコロン(:) というものと、ベクトルの要素の参照の仕方についての理解を目的とした問題です。

x01 という変数名で、5個の値からなるベクトルを作成しています。1番目の要素は x01[1] で参照することができます。ここでは2:4 で2番目から4番目までの3つの値を指定しています。

正答: 119 120 121

Rで次の命令を行った結果として正しいものが1つある。それはどれか。

x01 <- c(118,119,120,121,123)

x02 <- length(x01)

x02

 

Rには様々な関数があり、講義のスライドでは説明していないものも多くあります。この問題は関数を使う練習として作成した問題です。

lengthはベクトルの長さ、つまり要素の数を答える関数です。

?length とするとヘルプを見ることができます。ヘルプは英語で書かれているので、苦手な方もおられるかもしれませんが、下の方に例が書いてあるものも多く、実際に試してみることで理解できるところもあると思います。積極的に活用してみてください。

正答: 5

Rで次の命令を行った結果として正しいものが1つある。それはどれか。

> x01 <- c(117,119,120,121,123)

mean(x01)

mean で平均を計算することができます。sum と length を組み合わせて

sum(x01)/length(x01)

としても同じ値になります。

正答: 120

Rで次の命令を行った結果として正しいものが1つある。それはどれか。

x01 <- c(117,119,120,121,123)

x02 <- c(58,59,60,61,62)

x03 <- data.frame(height=x01, weight=x02)

x03[3,2]

データフレームは同じ長さのベクトルが集まってできた表の形をした変数です。x03[3,2] とは3行目の2列目ということです。

列名に名前がついているので、x03$weight[3] とすることもできます。

正答: 60

1-3

Rで次のようにファイルを読み込んだときの結果として正しいものが1つある。それはどれか。

> library(tidyverse)

> x01 <- read_table2(“E01P01.txt”)

> x01[1,1]

ただし、E01P01.txt のファイルは正しい場所に保存されているものとし、以下のようなデータであるとする。

name1 A B

A1 148 52

A2 152 54

A3 154 56

A4 158 58

A5 163 60

ファイルを読み込む場合には、値がスペースやカンマで区切られているかどうかで異なる関数を用います。

library(tidyverse) のところは、

library(readr)

とすることもできます。

正答: A1

Rで次のようにファイルを読み込んだときの結果として正しいものが1つある。それはどれか。

> library(tidyverse)

> x01 <- read_csv(“E01P01.txt”)

> x01[1,1]

ただし、E01P01.txt のファイルは正しい場所に保存されているものとし、以下のようなデータであるとする。

name1 A B

A1 148 52

A2 152 54

A3 154 56

A4 158 58

A5 163 60

read_csv はカンマを区切りとしてファイルを読み込むので、カンマが出てくるまでは区切りがないと考えます。

このファイルは値がスペースで区切られているデータファイルですから、name1 A B という1行すべてが1列目として取り込まれます。

正答: A1 148 52

Rで次のようにファイルを読み込んだときの結果として正しいものが1つある。それはどれか。

> library(tidyverse)

> x01 <- read_table2(“E01P02.csv”)

> x01[1,1]

ただし、E01P02.csv のファイルは正しい場所に保存されているものとし、以下のようなデータであるとする。

name1,A,B

A1,148,52

A2,152,54

A3,154,56

A4,158,58

A5,163,60

read_table2はスペースがあると、そこを区切りとみなします。今回のファイルはカンマで区切られたデータとなっているので、1列のデータであるとみなされます。

また、1行目は列の名前と判断されます。

正答: A1,148,52
Pocket
LINEで送る