忍者ブログ
×

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

データフレームを行列にして、それからtableにする

dat <- data.frame(c(1,2,3), c(4,5,6))
datm <- as.matrix(dat)
datt <- as.table(datm)
dat
class(dat)
datm
class(datm)
datt
class(datt)

処理対比 (treatment contrast)
> contr.treatment(3)
  2 3
1 0 0
2 1 0
3 0 1

SASっぽい対比
> contr.SAS(3)
  1 2
1 1 0
2 0 1
3 0 0

零和対比 (zero sum contrast)
> contr.sum(3)
  [,1] [,2]
1    1    0
2    0    1
3   -1   -1

ヘルマート対比 (helmert contrasts)
> contr.helmert(3)
  [,1] [,2]
1   -1   -1
2    1   -1
3    0    2

多項式対比 (polynomial contrast)
> contr.poly(3)
            .L     .Q
[1,] -7.07e-01  0.408
[2,] -9.07e-17 -0.816
[3,]  7.07e-01  0.408


# 現在の対比係数を調べる
> options()$contrasts
        unordered           ordered
"contr.treatment"      "contr.poly"

# 対比係数を変える
options(contrasts = c("contr.sum", "contr.sum"))
datf <- read.table("https://blog.cnobi.jp/v1/blog/user/89d80905c7038b4121822249e9062fba/1258223909", header = T)
## 心理統計学の基礎、p312より
datf$dominance <- factor(datf$dominance)

options(contrasts = c("contr.sum", "contr.sum"))
covres.ind <- lm(envy ~ dominance + cov, data = datf)
covres.int <- lm(envy ~ dominance * cov, data = datf)
anova(covres.ind, covres.int)

library(car)
anova(covres.int)
Anova(covres.int, type = 3) # 教科書どおりはこれ
anova(covres.ind)
Anova(covres.ind, type = 3)

# プロットの準備
lmres.app  <- lm(envy ~ cov, data = datf, subset = (dominance == 1)) # 容姿
lmres.acbg <- lm(envy ~ cov, data = datf, subset = (dominance == 2)) # 学歴
lmres.afl  <- lm(envy ~ cov, data = datf, subset = (dominance == 3)) # 豊かさ

# プロット
par(family = "Japan1GothicBBB")
plot(1, xlim = c(0, 16), ylim = c(0, 10), xlab = "cov.", ylab = "envy")
points(envy ~ cov, pch = 1, data = datf, subset = (dominance == 1))
abline(lmres.app, lty = 1)
points(envy ~ cov, pch = 17, data = datf, subset = (dominance == 2))
abline(lmres.acbg, lty = 4)
points(envy ~ cov, pch = 4, data = datf, subset = (dominance == 3))
abline(lmres.afl, lty = 2)
legend("topleft", c("容姿", "学歴", "豊かさ"), pch = c(1, 17, 4), lty = c(1, 4, 2), box.lty = 0)
spssはもうほとんど使わないのだが、たまにサンプルをspss出力で載せているページもあるので

# データを開く
R-tipsの記事より。感謝

library(foreign)
dat <- read.spss("filename.sav")
## このままだとリストなのでデータフレームにする
dat2 <- data.frame(dat)
## dat <- data.frame(read.spss("filename.sav")) # これでもいい

# webからもいける
dat <- data.frame(read.spss("http://davidakenny.net/dtt/morse_et_al.sav"))

# フリーのビューワがある。SPSSのデータ加工のためのもののようで、公式ではない
ViewSav
http://www.asselberghs.dds.nl/stuff.htm


# 出力を読む

フリーのビューワが提供されているのでそれを使う

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

プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表