Rの基礎3

csvデータの読み込み・書き込み

データをcsvから読み込む

# たとえばinput.csvというファイルをdataという変数に読み込む場合

# header=Fは,先頭行のデータを無視する。FALSEでもOK

data <- read.csv("input.csv", header=F)


クリップボードのデータを変数に保存(読み込み)

# ”コピペ”するときの”コピー”したやつは”クリップボード”に保存されています。

# テキストデータをコピーして,そこから読み込むことができるということ

data <- read.table("clipboard")


データをcsvに保存する

# たとえばdataという変数をoutput.csvに出力する場合

write.csv(data, "output.csv")


xlsxデータの読み込み

パッケージのインストール・読み込み

install.packages("openxlsx")

# パッケージの読み込み

library(openxlsx)


データのダウンロード


データの読み込み


# read.xlsxで読みこんだデータをdataに保存

data <- read.xlsx("pone.0226832.s001.xlsx")


# データフレーム型で読み込まれることを確認

# class()でデータが型を確認可能

# データフレームは,「$」を使用して列を指定できる

class(data)

data$Kusho

data$Age

# 数値で列を指定することも可能

data[,5]


リスト・データフレーム


代表値の算出

summary(data)

summary(data$Kusho)


度数をグラフ化する


# 度数分布表の区間を指定する

breaks <- seq(60, 100, 5)               

result <- table(cut(data$Age, breaks))


# pie(): 円グラフを描画 【!円グラフはデータの読み取りに難があるので使わないこと!】 

# barplot(): 棒グラフで描画

pie(result)

barplot(result)


#ヒストグラム用の関数も用意されている

hist(data$Age)



平均値を棒グラフとしてプロットする


平均値の算出

# データフレームの列ごとに平均値を算出

# 計算できない列があることを確認する

means <- apply(data,2,mean)

# NA(欠損値)を排除してから平均

means <- apply(data,2,mean,na.rm=TRUE)

# meansを転置してからデータフレームに変換

means <- as.data.frame(t(means))


標準偏差(データのバラつきに関する指標)の算出

# NA(欠損値)を排除してから平均

sds <- apply(data,2,sd,na.rm=TRUE)

# meansを転置してからデータフレームに変換

sds <- as.data.frame(t(sds))


プロット用のデータを作成

# 平均値,標準偏差にそれぞれについて,3列をひとつのデータにまとめる

meandata <- cbind(means$Kusho,means$Static,means$Circle)

sddata <- cbind(sds$Kusho,sds$Static,sds$Circle)

# meansの3列に名前をつける

colnames(meandata) <- c("Kusho","Static","Circle")


プロットする

# bar plot and error bar

h <- barplot(meandata, xlab = "Exp Condition", ylab = "Task performance", ylim = c(0, 20),

             col = "lightgrey")

arrows(h, meandata - sddata, h, meandata + sddata, code = 3, lwd = 1, angle = 90, length = 0.1)


データを箱ひげ図としてプロットする

# 箱ひげ図をプロットするのはとても簡単

boxplot(data[,1:3],col="lightgrey",ylab="Task performance",xlab="Exp condition")


データを散布図としてプロットする

# Circle条件の課題成績とAge,MMSE,Educationそれぞれとの散布図をプロットする

plot(data$Circle,data$Age,ylab="Age",xlab="Task performance in the Circle condition")

plot(data$Circle,data$MMSE,ylab="MMSE",xlab="Task performance in the Circle condition")

plot(data$Circle,data$Education,ylab="Education",xlab="Task performance in the Circle condition")


画像の保存の仕方「Export」