R语言 apply应用FUN=calss选定特定行的结果为什么跟选定整个表不一样?

当我用整个表来运行apply函数时

apply(data_all,2,class)

结果如下

    species           x           y         occ          X1          X2          X3          X4          X5 
"character" "character" "character" "character" "character" "character" "character" "character" "character" 
         X6          X7          X8          X9         X10         X11         X12         X13         X14 
"character" "character" "character" "character" "character" "character" "character" "character" "character" 
        X15         X16         X17         X18         X19 
"character" "character" "character" "character" "character"

选择其中部分列后

apply(data_all[5:23],2,class)

结果却是从字符变成了数值(确实是数值),这是为什么?

       X1        X2        X3        X4        X5        X6        X7        X8        X9       X10       X11 
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 
      X12       X13       X14       X15       X16       X17       X18       X19 
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 

我其实就想知道整个表运行的时候为什么类型不对?