忍者ブログ
3

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

aovとかlmとかの出力は半角スペースがいっぱい入って後から使いづらい。
タブ区切りにしたいと思っていたが、xtableというライブラリでできるようだ。
xtableのヘルプの例を貼り付けておく。

sink関数で作業ディレクトリの"RLOG.html"に出力する。
xtable は出力の中のtable部分だけ適用可能。例えば、summary(glm(...))の最後にあるdevianceやAICは出力されない。

library(xtable)
sink(file = "RLOG.html", split = TRUE, append=TRUE)
data(tli)

## aovで使用
cat("\n=======aov======\n\n")
res.aov <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data=tli)
## 普通の出力
cat("===\n普通の出力\n\n")
print(res.aov)
summary(res.aov)
## htmlで出力
cat("===\nhtmlで出力\n\n")
print(xtable(res.aov), type = "html")
print(xtable(summary(res.aov)), type = "html")

## glmで使用
cat("\n\n=======glm======\n\n")
res.glm <- glm(disadvg ~ ethnicty*grade, data=tli, family=binomial())
## 普通の出力
cat("===\n普通の出力\n\n")
print(res.glm)
summary(res.glm)
## htmlで出力
cat("===\nhtmlで出力\n\n")
print(xtable(res.glm), type = "html")
print(xtable(summary(res.glm)), type = "html")

sink()


PR
結果の一部を取り出す
# summaryの中のcoefficientsの中から標準誤差を取り出す
result.se <- summary(result)$coefficients[, "Std. Error"]
# str()でデータ構造を知ることができる。
オブジェクトにコメントをつける。データフレームや解析結果につけるようにしよう
df <- iris
comment(df) <- c("iris dataframe", "日本語はどうだろう")
comment(df)
[1] "iris data frame" "日本語はどうだろう"
# 日本語もいけるようだ。ちなみにdfだけだと何もでない

作業スペースの保存
save.image("working.RData")
# コンソールの保存はファイルの保存を選択しないとできないみたい

出力をファイルに記録する
sink("log.txt", append=TRUE, split=TRUE)
# 出力を作業ディレクトリのlog.txtというテキストファイルに保存する
# append=TRUEは追加モード (上書きしない) 。split=TRUEはコンソールにも出力する。

データフレームをテキストで保存する
write.table(df, file="iris.txt", sep="\t", row.names=FALSE, quote=FALSE)
# sep="\t"はタブ区切り、row.names=FALSEは行番号を削除、quote=FALSEはダブルクォーテーション削除

テキストファイルからデータフレームを読み込む
df <- read.table("Data/iris.txt", header=T)


??
# sink関数でtype = c("output", "message")という引数も指定できるが何かわからない。
# 公式だとtypeは以下のようなことらしい。stdoutとstderrって何だ?UNIXの何か?
Normal R output (to connection stdout)) is diverted by the default type = "output". Only prompts and (most) messages continue to appear on the console. Messages sent to stderr() (including those from message, warning and stop) can be diverted by sink(type = "message")

データフレームの1列を取り出してデータフレームにする
y <- iris[1]
y <- iris[2:4]
## y <- iris[,1]だとベクトルになる
## y <- iris[,2:4]はデータフレームになる

データフレームの一部を取り出してデータフレームにする
yy <- cbind(iris[1], iris[4:5], iris[1:2])
## カンマをつけても同じ yy <- cbind(iris[,1], iris[,4:5], iris[,1:2])

データフレームの1列を取り出してデータフレームにする
onedf <- data.frame("one"=c(df$xxxx))
# 名前をつけないと変数名が"df$xxx"になる

データフレームや行列を結合する
ndf <- cbind(onedf, onedf2)
# 変数名は元のデータフレームについている名前になる
ndf <- cbind(onedf$one, onedf2$one2)
# こうすると変数名がなくなってV1...とかが勝手につく

欠損値を除いたデータフレームをつくる
ndf <- na.omit(df)
ndf[,2] <- factor(ndf[,2])
## 0がカウントされている変数にfactor関数を使うと消える


データフレームを範囲指定して因子変数にする
Rjpwikiより

lapply(dat[4:24], factor)
これはなんかうまくいかない
datf[4:24] <- lapply(dat[4:24], factor)
または
for (i in 4:24) {
datf[,i] <- factor(dat[,i]) # カンマの有無に注意
}
プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表