factor:文字列をカテゴリー化する。
levels:そのグループ名(水準)
nlevels:水準数
x <- data.frame(ID=c("01","02","03","04","05","06","07"), BLOOD=c("A","AB","B","O","A","B","O"))
x
## ID BLOOD
## 1 01 A
## 2 02 AB
## 3 03 B
## 4 04 O
## 5 05 A
## 6 06 B
## 7 07 O
str(x)
## 'data.frame': 7 obs. of 2 variables:
## $ ID : Factor w/ 7 levels "01","02","03",..: 1 2 3 4 5 6 7
## $ BLOOD: Factor w/ 4 levels "A","AB","B","O": 1 2 3 4 1 3 4
levels(x$BLOOD)
## [1] "A" "AB" "B" "O"
nlevels(x$BLOOD)
## [1] 4
reorder:カテゴリー変数を引数の順序で並び替える。
df <- data.frame(cnt=c(6,5,4,3,2,1), id=c("A","B","C","A","B","C"))
str(df)
## 'data.frame': 6 obs. of 2 variables:
## $ cnt: num 6 5 4 3 2 1
## $ id : Factor w/ 3 levels "A","B","C": 1 2 3 1 2 3
df <- reorder(df$id, df$cnt, sum)
df
## [1] A B C A B C
## attr(,"scores")
## A B C
## 9 7 5
## Levels: C B A
relevel:ref= “” で指定した水準を一番最初にする。
df <- data.frame(cnt=c(6,5,4,3,2,1), id=c("A","B","C","A","B","C"))
str(df)
## 'data.frame': 6 obs. of 2 variables:
## $ cnt: num 6 5 4 3 2 1
## $ id : Factor w/ 3 levels "A","B","C": 1 2 3 1 2 3
relevel(df$id, ref = "B")
## [1] A B C A B C
## Levels: B A C
cut:指定した基準で分割する。
x <- as.Date(1:365,origin="2016-01-01")
# table 関数は基準ごとをカウントする
table(cut(x, breaks="quarters"))
##
## 2016-01-01 2016-04-01 2016-07-01 2016-10-01
## 90 91 92 92
ある値(x)が連続したベクトルのどこに位置するか返す。
vec <- c(2.0,4.0,6.0,8.0)
x <- c(1.9,2.5,8.4)
findInterval(x, vec)
## [1] 0 1 4
因子同士の組み合わせを作成する。
x <- as.factor(2015:2017)
y <- as.factor(c("Jan","Feb","Mar"))
interaction(x, y)
## [1] 2015.Jan 2016.Feb 2017.Mar
## 9 Levels: 2015.Feb 2016.Feb 2017.Feb 2015.Jan 2016.Jan ... 2017.Mar
z <- data.frame(id = 1:9, yymm = interaction(x, y))
z
## id yymm
## 1 1 2015.Jan
## 2 2 2016.Feb
## 3 3 2017.Mar
## 4 4 2015.Jan
## 5 5 2016.Feb
## 6 6 2017.Mar
## 7 7 2015.Jan
## 8 8 2016.Feb
## 9 9 2017.Mar
既定値で文字列をファクターに変換しないオプション設定。
default.stringsAsFactors()
## [1] TRUE
# TRUE ならoptions(stringsAsFactors = FALSE)を実行
options(stringsAsFactors = FALSE)
# その都度指定する場合
x <- read.csv(filename, stringsAsFactors = FALSE)
copyrigth © 2016 r-beginners.com All rigths reserved.
PAGE TOP ▲