忍者ブログ
×

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