열렬히.뛰기

데이터프레임

Language > 프로그래밍 언어 > R > R언어 : 자료구조 > 데이터프레임

데이터프레임이란?

  • 벡터들의 결합, 행렬과 유사하다
    • 단, 행렬과 다르게 각각의 열이 서로 다른 데이터 유형을 가질 수 있다.
    • 즉, 행렬과 리스트를 합쳤다고 생각해도 된다.
  • 리스트 = n차원. 여러 타입을 합쳐놓을 수 있다.
  • 행렬 = 2차원. 보기 편하다.

데이터프레임 만들기

  • data.frame() 함수로 데이터프레임을 만든다.
r
df = data.frame(x=1:2, y=3:4, row.names=c("1st","2nd"))
df
r
> df = data.frame(x=1:2, y=3:4, row.names=c("1st","2nd"))
> df
    x y
1st 1 3
2nd 2 4

인덱싱

  1. 대괄호
  2. 겹대괄호
  3. 달러기호($) 사용
r
df[1]
df[[]]
df$

구조확인: head() & tail()

  • 처음과 끝의 관측치를 보고 싶을 때 사용
  • 기본적으로는 6개씩 볼 수 있음.
    • n값을 조정해서 갯수를 조정할 수 있음.

구조확인: str()

  • 전체적인 구조 확인시 사용한다.
r
head(iris)
tail(iris, n=5)
str()
r
> head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
> tail(iris, n=5)
    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
146          6.7         3.0          5.2         2.3 virginica
147          6.3         2.5          5.0         1.9 virginica
148          6.5         3.0          5.2         2.0 virginica
149          6.2         3.4          5.4         2.3 virginica
150          5.9         3.0          5.1         1.8 virginica
> str(iris$Sepal.Length)
 num [1:150] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...

조건에 맞게 봅기

which()

  • 조건에 만족하는 원소를 출력할 때 사용
  • 조건이 여러개면 which() 안에 & 기호를 붙여주면 됨.
r
which(iris$Sepal.Length > 6)
r
> which(iris$Sepal.Length > 6)
 [1]  51  52  53  55  57  59  64  66  69  72  73  74  75  76  77  78  87
[18]  88  92  98 101 103 104 105 106 108 109 110 111 112 113 116 117 118
[35] 119 121 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
[52] 138 140 141 142 144 145 146 147 148 149

subset()

  • 조건에 맞는 원소를 출력할 때 사용
  • subset("데이터프레임", subset, select, drop = “True/False” )
    • drop : True이면 벡터로 출력. False이면 데이터 프레임으로 출력
    • subset = 찾고자 하는 조건. 조건이 여러개면 & 넣으면 됨.
    • select= 조회하고 싶은 열
r
subset(iris, select=Species, subset=(iris$Sepal.Length > 7))
r
> subset(iris, select=Species, subset=(iris$Sepal.Length > 7))
      Species
103 virginica
106 virginica
108 virginica
110 virginica
118 virginica
119 virginica
123 virginica
126 virginica
130 virginica
131 virginica
132 virginica
136 virginica

편집

변수 추가하기

  1. ""데이터프레임 이름""$"”변수 이름”"
  2. “”데이터프레임 이름”” [, x]
r
# 예시
df$x3 = df$x1 + df$x2
df[, 4] = df[, 1] + df[, 2]

변수 수정하기

  • transform() 함수 사용
  • transform(””데이터 프레임””, “”바꾸고 싶은 열“”)
r
transform(df_new, x4 = c(2,2,2,2))

데이터 프레임끼리 결합하기

rbind(), cbind()

  • rbind() ⇒
  • cbind() ⇒
r
rbind(df.x1, df.x2)
cbind(df.xx, df.yx)

merge()

  • 보통 3개 이상 결합할 때 사용됨.
r
merge()
r