这个,涉及到一个变量强制转换问题。
首先,我们要知道apply操作的对象是一个matrix,而matrix有一个很重要的特点,所有元素都是同一种数据类型。要么全是character,要么全是numeric或者其它一种类型。
楼主,你的问题在于,使用apply时,虽然你设定了2为列,但在这个操作过程中,R强制使用了as.matrix对这个data frame进行了转换。转换的结果就是所有的元素都变成了character,因为如果有numeric类型和character,会被统一转换成character,不信你可以用apply试一下:
所以正确使用apply的做法应该是:
不知道这样说,是否清楚了哈