data =data.frame(sapply(data,function(x) ifelse((x==999),NA,x)))
你能解釋一下 function(x)....,x 是如何作業的嗎?我知道這個函式的輸入和輸出是什么,它只是用資料框中的 NA 替換 999 個值,但我想知道這個函式(x)一般是如何作業的。
uj5u.com熱心網友回復:
這是您的函式,名稱為my_func:它接受一個值 x 檢查它是否為 999,如果不是,則回傳 x 的值,如果是,則回傳 999:
my_func <- function(x) {
ifelse(x==999, NA, x)
}
您現在可以按如下方式使用此功能:
- 命名函式獨立:
my_func(mtcars$mpg)
- 命名函式為
lapplyorsapply...
基本上 sapplyR 中的 function 與 function 做同樣的作業,lapply()但回傳一個向量:
- lapply(X, FUN) 引數: - X:向量或物件 - FUN:應用于 x 的每個元素的函式
lapply(mtcars$mpg, my_func)
- sapply(X, FUN) 引數: -X:向量或物件 -FUN:應用于 x 的每個元素的函式
sapply(mtcars$mpg, my_func)
現在你的問題:
在這種情況下,您可以直接使用函式,my_func而無需先定義或命名為匿名函式(意味著該函式沒有名稱),例如:
lapply(mtcars$mpg, function(x) ifelse(x==999, NA, x))
注意:本質上function(x)它是你命名函式的主體部分my_func。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/435661.html
上一篇:函式不列印兩個單獨的列印陳述句
