因子

factor, levels, nlevels

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, relevel

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

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

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

findInterval

ある値(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

interraction

因子同士の組み合わせを作成する。

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

options(stringsAsFactors = FALSE)

既定値で文字列をファクターに変換しないオプション設定。

default.stringsAsFactors()
## [1] TRUE
# TRUE ならoptions(stringsAsFactors = FALSE)を実行
options(stringsAsFactors = FALSE)
# その都度指定する場合
x <- read.csv(filename, stringsAsFactors = FALSE)
最終更新日:2016/04/27

copyrigth © 2016 r-beginners.com All rigths reserved.

PAGE TOP ▲