У меня есть данные кадра (DataFrame1) с этим классом (я только напечатать 4th первые классы):Изменения классов dataframe, как и другие dataframe
> str(DataFrame1)
'data.frame': 11170 obs. of 30 variables:
$ Var1 : int 20112 20112 20112 20121 20142 20142 20142 20122 20142 20142 ...
$ Var2 : Factor w/ 4003 levels "1042209","1042210",..: 1 2 5 6 7 8 9 10 11 12 ...
$ Var3 : Factor w/ 6 levels "2010/11","2011/12",..: 2 2 2 3 5 5 5 3 5 5 ...
$ Var4 : Factor w/ 2 levels "1","2": 2 2 2 1 2 2 2 2 2 2 ...
И я создаю новый фрейм данных с точно такими же столбцов (в том же порядке с тем же значением).
> str(DataFrame2)
'data.frame': 7 obs. of 30 variables:
$ Var1 : Factor w/ 5 levels "20102","20132",..: 1 3 5 5 5 4 2
..- attr(*, "names")= chr "b1" "b2" "b3" "b4" ...
$ Var2 : Factor w/ 6 levels "270620","28078",..: 2 3 3 4 5 6 1
..- attr(*, "names")= chr "b1" "b2" "b3" "b4" ...
$ Var3 : Factor w/ 4 levels "2010/11","2013/14",..: 1 3 4 4 4 3 2
..- attr(*, "names")= chr "b1" "b2" "b3" "b4" ...
$ Var4 : Factor w/ 2 levels "1","2": 2 1 1 1 1 2 2
..- attr(*, "names")= chr "b1" "b2" "b3" "b4" ...
Я хочу присоединиться к этой dataframes с rbind
, но я получаю сообщение об ошибке, потому что классы разные. Таким образом, я изменил классы:
class(DataFrame2[,1])<-class(DataFrame1[,1])
class(DataFrame2[,2])<-class(DataFrame1[,2])
class(DataFrame2[,3])<-class(DataFrame1[,3])
class(DataFrame2[,4])<-class(DataFrame1[,4])
Но классы все-таки разные:
> str(DataFrame2)
'data.frame': 7 obs. of 30 variables:
$ Var1 : atomic 1 3 5 5 5 4 2
..- attr(*, "levels")= chr "20102" "20132" "20141" "20142" ...
$ Var2 : Factor w/ 6 levels "270620","28078",..: 2 3 3 4 5 6 1
$ Var3 : Factor w/ 4 levels "2010/11","2013/14",..: 1 3 4 4 4 3 2
$ Var4 : Factor w/ 2 levels "1","2": 2 1 1 1 1 2 2
Если я rbind
я получаю ту же ошибку.
Почему в числовом и целочисленном классах появляется атомный?
Что я могу сделать для классов DataFrame2 таким же, как в DataFrame1?
Do 'DataFrame2 [, 1] <- as.numeric (as.character (DataFrame2 [, 1])) '. – ytk
@ytk, спасибо, он работает – user4563174