R

[R]의 SD (Subset of Dataframe)

'김용환' 2015. 7. 9. 17:41

dataframe에서 .SD 라는 개념이 있다.

Subset of Dataframe의 약자이다. 자세한 내용은 아래 url에 있다.


http://stackoverflow.com/questions/8508482/what-does-sd-stand-for-in-data-table-in-r



테이블을 하나 만들자.

> table <- data.table(x=rep(c("a","b","c"),each=2), y=c(1,3), z=1:6)


아래 테이블로 되어 있는데..

> table

   x y z

1: a 1 1

2: a 3 2

3: b 1 3

4: b 3 4

5: c 1 5

6: c 3 6



z 컬럼은 버리고 x,y만 보인다.

> table[, .SD[,paste(x,y, sep="", collapse=", ")]]

[1] "a1, a3, b1, b3, c1, c3"



x,y 컬럼의 값을 하나의 값으로 보여지기를 원한다면 아래와 같이 할 수 있다. SQL의 여러 값을 insert into 에 넣을 때 잘 활용할 수 있을 것이다.

> m<-table[, .SD[,paste(x,y, sep=",", collapse="), (")]]

> paste("(", m, ")")

"( a,1), (a,3), (b,1), (b,3), (c,1), (c,3 )"


주의할 점이 있다.

SD 사용하려면, library(data.table)를 한 후, data.table로 감싼 후에 사용할 수 있다. SD는 테이블 속성이 있어야 사용 가능하다.