2
是否有人可以解釋apply()
和sapply()
如何在數據幀的列上運行?數據幀列應用和sapply之間的區別?
例如,試圖找到類每列的數據幀時,我的第一個傾向是對列使用apply
:
> apply(iris, 2, class)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
"character" "character" "character" "character" "character"
這是不正確的,因爲有一些的,列是數字:
> class(iris$Petal.Length)
[1] "numeric"
在谷歌快速搜索止跌回升this solution針對使用sapply
而不是apply
問題:
> sapply(iris, class)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
"numeric" "numeric" "numeric" "numeric" "factor"
在這種情況下,sapply
被隱式轉換iris
到一個列表,然後將函數列表中的每個條目,如:
> class(as.list(iris)$Petal.Length)
[1] "numeric"
我還有什麼不清楚的是爲什麼我的原嘗試使用apply
不起作用。