我正在尝试获取一个大数据框中每列的最小/最大值,作为了解我的数据的一部分。我的第一次尝试是:
apply(t,2,max,na.rm=1)
它将所有内容都视为字符向量,因为前几列是字符类型。因此,某些数字列的最大值会显示为
" -99.5"
。然后我尝试了这个:
sapply(t,max,na.rm=1)
但是它抱怨 max 对于因子没有意义。(lapply
也一样。)让我困惑的是,apply
认为 max
在因子中完全有意义,例如它对于第一列返回了 "ZEBRA"。
顺便说一句,我看了一下 在向量上使用sapply处理POSIXct,其中一个答案说 "当你使用 sapply 时,你的对象会被强制转换为数字,..."。这是发生在我身上的事吗?如果是,是否有另一种不强制转换的 apply 函数可用?毕竟数据框类型的一个关键特征是每列可以是不同的类型。
apply
之前将列设置为它们应该属于的类别,例如日期作为as.POSIXct,数字作为numeric等,那么这比在sapply
内部进行强制转换更容易?@DarrenCook - vagabond