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는 테이블 속성이 있어야 사용 가능하다.