×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
# 変数の名前を変える
library(reshape)
dat <- iris
dat <- rename(dat, c(Species="newname"))
names(dat)
# 変数の再コード化
## サンプルデータ
x <- trunc(rnorm(30, m=100, sd=10))
## 90未満、90以上110未満、110以上でlow, middle, highにする
# cut関数よりも楽で以上、未満、以下が定義しやすい
nx <- x
nx[x >= 110] <- "high"
nx[x >= 90 & x < 110] <- "middle"
nx[x < 90] <- "low"
x
nx <- factor(nx) # 順序尺度にするときはordered(nx, levels=c("high", "middle", "low"))
# cut関数でコード化
x <- rnorm(1000, mean=100, sd=10)
## 中央値分割
cut(x, breaks=c(-Inf, median(x), Inf), label=c("LOW", "HIGH"), right=T, ordered_result=T)
## ordered_result=Tとすると順序尺度になる。分割は以上-未満で行われる。right=Tとしないとへんな結果になる
## 中央値分割
nx <- x
nx[x >= median(x)] <- "high"
nx[x < median(x)] <- "low"
nx <- factor(nx)
summary(nx)
# 数値変数を因子に変換する
## サンプルデータ
dat <- data.frame(matrix(sample(1:5, 100, replace=T), 10))
## 1から5列目だけ因子変数にする
dat2 <- dat
dat2[1:5] <- data.frame(lapply(dat[1:5], factor))
sapply(dat2, class) # 確認
# ダミー変数の生成
x <- gl(5, 4, labels=c("high", "mid", "low", "out", "ukn"))
lvs <- levels(x)
nlv <- nlevels(x)
x.dmy <- data.frame(matrix(0, nrow=20, ncol=5))
for (i in 1:nlv) {
x.dmy[,i] <- as.integer(x==lvs[i])
}
data.frame(x.dmy, x)
# 変数の水準のシャッフル
x <- gl(6, 5, labels=c("G", "T", "D", "C", "B", "S"))
x
x[order(rnorm(length(x)))]
# ベクトルをコンマ区切りの文字列にする
x <- gl(6, 5, labels=c("G", "T", "D", "C", "B", "S"))
paste(x, collapse=",")
PR
Comment
Trackback
Trackback URL
Comment form