×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
# クリップボードへ
write.table(dat, "clipboard", sep="\t", row.names=FALSE, quote=FALSE)
# タブ区切りテキスト
write.table(dat, file="dattxt.txt", sep="\t", row.names=FALSE, quote=FALSE)
# タブ区切りcsv
write.csv(dat, file="datcsv.csv")
## fileのところにfile.choose() とすればダイアログで場所を選べる
write.csv(dat, file.choose())
# Excelファイルで保存
library(xlsReadWrite)
write.xls(iris, file.choose())
PR
# クリップボードから
dat <- read.table("clipboard", header=T)
# タブ区切りテキストファイルから
dat <- read.table("dat.txt", header=T)
# タブ区切りcsvファイルから
dat <- read.table("dat.csv", header=T)
# ダイアログで選ぶ。
# file.choose関数はファイルのパスとファイル名を文字列で指定するものだが、日本語は通らない ("デスクトップ") など
dat <- read.table(file.choose(), header=T)
dat <- read.delim(file.choose()) # デフォルトでheader=Tとなってるので便利かもしれない
# Excelのxlsファイルを読む
library("xlsReadWrite")
xls.getshlib() # これを実行しておかないとエラー
dat <- read.xls(file.choose())
## (file.choose, sheet=1) でシートを選べる。デフォルトは1
# Excel2007以降のxlsxファイルを読む
library(xlsx) # javaRuntimeEnvironmentがないとダメみたい。知らない間に入っていたりするけど
file <- system.file("tests", "test_import.xlsx", package = "xlsx") # これを実行しておかないとエラー
dat <- read.xlsx(file.choose(), sheet=1) # シート名を指定しておかないとエラー
## 当然というべきか、Excelファイルを読み込むパッケージは他にもたくさんある。Rコマンダーを使うとシートもダイアログで選択できる。代表的なのはrodbc, gdata, gregmiscなどか。perlのインストールとかめんどそうなのでパスしよう
# webからはクォーテーション内のファイル名をURLにする
dat <- read.table("https://blog.cnobi.jp/v1/blog/user/89d80905c7038b4121822249e9062fba/1255449130",header = T)
library(foreign); dat <- data.frame(read.spss("http://www.indiana.edu/~statmath/stat/all/cfa/values.sav")
# コンマ区切りのときはsep=","とする
dat <- read.table('http://www.ats.ucla.edu/stat/R/faq/hsb2.csv', header=T, sep=",")
# spssのsavファイルから
library(foreign)
dat <- data.frame(read.spss("dat.sav"))
# 変数ラベルを読み込むときは以下のようにする
x <- read.spss("test2.sav", to.data.frame=T, max.value.labels=99)
head(x)
sapply(x, class)
# webからもいける
dat <- data.frame(read.spss("http://davidakenny.net/dtt/morse_et_al.sav"))
# R以外でspssデータを読んだり出力を開いたりする
## savファイル (データファイル) を開く
## フリーのビューワがある。SPSSのデータ加工のためのもののようで、公式ではない
ViewSav
http://www.asselberghs.dds.nl/stuff.htm
PSPP. SPSSのクローンソフトをつくろうというGNUプロジェクト。まだ開発段階で高度な分析はできないが、とりあえずsavファイルは開ける
http://www.gnu.org/software/pspp/
## spo, spvなどの出力ファイルを開く。
## 公式にフリーのビューワが提供されているのでそれを使う
spoファイル
http://www.spss.co.jp/techsupport/tech-info/spss_statistics_170/000622.html
spvファイル
http://www.spss.co.jp/techsupport/tech-info/spss_statistics_170/000623.html
書き溜めたものをQuick-Rのようにしたいと思ったがこのブログでは上手くいかないな…
階層のあるメニューにできればいいんだけど
Rjpwikiで楽しそうなことが始まっている
psych, sem, carパッケージなんかもあるといいな
階層のあるメニューにできればいいんだけど
Rjpwikiで楽しそうなことが始まっている
psych, sem, carパッケージなんかもあるといいな
dat <- data.frame(a = factor(c(rep("a1",8), rep("a2",8), rep("a3",8), rep("a4",8))), result = c(9,7,8,8,12,11,8,13, 6,5,6,3,6,7,10,9, 10,13,8,13,12,14,14,16, 9,11,13,14,16,12,15,14))
lmres <- lm(result~a, dat)
smry <- summary(lmres)
smry$sigma^2 # 残差の平均平方和
smry$sigma^2 * lmres$df.residual
anova(lmres)
# 被験者間しか使えない
lmres <- lm(result~a, dat)
smry <- summary(lmres)
smry$sigma^2 # 残差の平均平方和
smry$sigma^2 * lmres$df.residual
anova(lmres)
# 被験者間しか使えない
## サンプルデータ
library(psych)
data(bfi) # psychパッケージ内のデータセット
dat <- bfi
# 各変数ごとに反応の種類を調べる
sapply(dat, function(x) levels(factor(x)))
# 変数ごとに反応や単位が違う場合に使う。データはデータフレームにしておくこと
# library(psych); data(sat.act); sapply(sat.act, function(x) levels(factor(x)))
# 全体の回答数
summary(factor(as.matrix(dat)))
# 一応プロットもしてみる
win.graph()
plot(as.vector(as.matrix(dat)))
win.graph()
hist(as.vector(as.matrix(dat)))
# 各項目ごとの反応数を集計する。
# 有効回答 (NA, Inf, NaN以外の反応) 種類をとりだす
(res <- names(table(as.matrix(dat)))) # table関数はNAとかは集計しないことを利用
resN <- length(res) # 反応の種類数
itemN <- ncol(dat) # 項目数
count.dat <- data.frame(matrix(NA, itemN, resN)) # 集計表用の行列。行が項目、列が反応
rownames(count.dat) <- names(dat)
colnames(count.dat) <- res
for (i in 1:resN){
count.dat[,i] <- sapply(dat, function(x) sum(na.omit(x)==res[i]))
}
count.dat
# NA, NaN, Infも調べる
na <- sapply(dat, function(x) sum(is.na(x))) # NAとNaNがカウントされる
inf <- sapply(dat, function(x) sum(is.infinite(x))) # Infをカウント
# 記述統計とかとくっつける。記述統計はpsychパッケージのdescribe関数で
descriptives <- cbind(data.frame(describe(dat)), count.dat, na, inf)
descriptives
# csvで保存
write.csv(descriptives, file="descriptives.csv", quote=FALSE)