data frame을 data table로 그냥 변환하면 이상한 값이 나온다. 

row name 때문에 발생하기 때문에, 이 부분을 옵션으로 넣으면 문제 없이 잘 동작한다.

해당 옵션은 keep.rownames=TRUE 또는 rownames() 함수이다.



소스


library("data.table")


new_df

dt <- as.data.frame.table(new_df)

dt


data.table(new_df, keep.rownames=TRUE)


data.table(name=rownames(new_df),new_df)






결과 



> library("data.table")

> new_df

        mt na sa

samuel  90 90 80

aston   90 90 80

patrick 80 60 90

> dt <- as.data.frame.table(new_df)

> dt

     Var1 Var2 Freq.mt Freq.na Freq.sa

1  samuel   mt      90      90      80

2   aston   mt      90      90      80

3 patrick   mt      80      60      90

4  samuel   na      90      90      80

5   aston   na      90      90      80

6 patrick   na      80      60      90

7  samuel   sa      90      90      80

8   aston   sa      90      90      80

9 patrick   sa      80      60      90

> data.table(new_df,keep.rownames=TRUE)

        rn mt na sa

1:  samuel 90 90 80

2:   aston 90 90 80

3: patrick 80 60 90

> dt <- data.table(name=rownames(new_df),new_df)

      name mt na sa

1:  samuel 90 90 80

2:   aston 90 90 80

3: patrick 80 60 90


Posted by '김용환'
,