我想知道是什么導致了這兩個命令之間的差異:
apply(DF,2,is.numeric)
c(ID = FALSE, diet = FALSE, height = FALSE, weight = FALSE, gender = FALSE,
wohn = FALSE, social = FALSE, alter = FALSE, d13C = FALSE, d15N = FALSE,
ferr = FALSE, VitB = FALSE)
sapply(DF,is.numeric)
c(ID = FALSE, diet = FALSE, height = TRUE, weight = TRUE, gender = FALSE,
wohn = FALSE, social = FALSE, alter = TRUE, d13C = TRUE, d15N = TRUE,
ferr = TRUE, VitB = TRUE)
我想我也可以將第一個用于資料幀?非常感謝
uj5u.com熱心網友回復:
apply首先將資料更改為矩陣,并且由于如果資料框具有混合類(數字,字符),矩陣只能保存一種型別的資料,因此它將數字列更改為字符值,從而回傳FALSEfor is.numeric。
這是一個示例來演示您正在觀察的內容。
DF <- data.frame(a = 1:5, b = letters[1:5])
apply(DF, 2, is.numeric)
# a b
#FALSE FALSE
sapply(DF, is.numeric)
# a b
# TRUE FALSE
相反,如果資料框的所有列都是數字apply將回傳TRUE。
DF <- data.frame(a = 1:5, b = 1:5)
apply(DF, 2, is.numeric)
# a b
#TRUE TRUE
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/419508.html
標籤:
