Matrix and Array
vector에 "dim" attributes를 추가하면 다차원 배열이 된다.
생성은 array, matrix 또는 dim을 이용한다.
> a <- matrix(1:6, ncol = 3, nrow = 2)
> a
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> b <- array(1:12, c(2,3,2))
> b
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
> c <- 1:6
> dim(c) <- c(3,2)
> c
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> d <- array(1:12, dim = c(2,3,2))
> d
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
Data frame
> df <- data.frame(x = 1:3, y = c("a","b","c"), z = 10:12)
> df
x y z
1 1 a 10
2 2 b 11
3 3 c 12
> str(df)
'data.frame': 3 obs. of 3 variables:
$ x: int 1 2 3
$ y: Factor w/ 3 levels "a","b","c": 1 2 3
$ z: int 10 11 12
> class(df)
[1] "data.frame"
Data frame에서 벡터를 factor로 변경하지 않기 위해서는 아래와 같이
stringsAsFactors = FALSE를 해준다.
참고로 str(df)를 하면 y, z 모두 factor이 아닌걸 보면 stringsAsFactors는 어느 위치에 있어도 무방하다는 것을 알 수 있다.
> df <- data.frame(
+ x = 1.3,
+ y = c("a","b","c"),
+ stringsAsFactors = FALSE,
+ z = c("d","e","f")
+ )
> df
x y z
1 1.3 a d
2 1.3 b e
3 1.3 c f
> str(df)
'data.frame': 3 obs. of 3 variables:
$ x: num 1.3 1.3 1.3
$ y: chr "a" "b" "c"
$ z: chr "d" "e" "f"
Data frame에서 cbind와 rbind는 아래와 같이 한다.
데이터프레임에서는 항상 <-가 아닌 =로 식을 대입한다.
> df <- data.frame(
+ x = 1:3,
+ y = c("a","b","c"),
+ stringsAsFactors = FALSE
+ )
> df
x y
1 1 a
2 2 b
3 3 c
> a <- cbind(df, data.frame(z = 3:1))
> a
x y z
1 1 a 3
2 2 b 2
3 3 c 1
> b <- rbind(df, data.frame(x = 4, y = "d"))
> b
x y
1 1 a
2 2 b
3 3 c
4 4 d
Data frame에 list를 담기 위해서는 $표시 혹은 I()를 이용하여 담아준다.
> df <- data.frame(x = 1:3)
> df$y <- list(1:2, 1:3, 1:4)
> df
x y
1 1 1, 2
2 2 1, 2, 3
3 3 1, 2, 3, 4
> data.frame(x = 1:3, y = list(1:2, 1:3, 1:4))
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 2, 3, 4
> df1 <- data.frame(x = 1:3, y = I(list(1:2, 1:3, 1:4)))
> df1
x y
1 1 1, 2
2 2 1, 2, 3
3 3 1, 2, 3, 4
> df1[2,"y"]
[[1]]
[1] 1 2 3
'Basic > R' 카테고리의 다른 글
R언어를 이용한 평균, 분산, 표준편차 (0) | 2018.05.14 |
---|---|
R언어 조건문, 반복문, 함수 (0) | 2018.05.13 |
Data Types, Lists, Attribute, name 함수 (0) | 2018.04.03 |
R언어 list, attr, names, dim, factor, table (2) | 2018.03.23 |
R언어 난수 생성, 정렬, 인덱싱, 벡터 연산 (0) | 2018.03.13 |