У меня есть вопрос относительно характеристик cbind
в таблице данных и фрейме данных. Если я привязываю фрейм данных (df) и таблицу данных (dt), то класс результирующего объекта зависит от первого параметра.
пример:
> dt<-data.table(x=c(1,2,3),y=c(2,3,4),z=c(3,4,5))
> df<-data.frame(x=c(1,2,3),y=c(2,3,4),z=c(3,4,5))
> dt
x y z
1: 1 2 3
2: 2 3 4
3: 3 4 5
Случай 1: (первый параметр как кадр данных)
>test_df<-cbind(df,dt)
>class(test_df)
[1] "data.frame"
Случай 2: (первый параметр в виде таблицы данных)
>test_dt<-cbind(dt,df)
>class(test_dt)
[1] "data.table" "data.frame"
Итак, мой вопрос заключается в том, как можно получить выходной объект в виде таблицы данных и фрейма данных в двух разных сценариях, где cbind
не имеет метода data.table.
Это ясно в функции слияния, где R вызывает разные функции слияния в зависимости от первого параметра (если первый параметр является фреймом данных, который он вызывает, фреймом данных, а если это таблица данных, он вызывает метод слияния таблицы данных).
do.call(cbind, lapply(list(df, dt), setDT))
- person akrun   schedule 01.12.2015