data =data.frame(sapply(data,function(x) ifelse((x==999),NA,x)))
Could you explain how function(x)....,x works? I know what input and output of this function are, it just replaces 999 values with NAs in dataframe, but I want to know how this function(x) works in General.
CodePudding user response:
This is your function with the name my_func
: It takes a value x checks if it is 999, if not it gives back the value of x, if yes it gives back 999:
my_func <- function(x) {
ifelse(x==999, NA, x)
}
You now can use this function as follows:
- named function standalone:
my_func(mtcars$mpg)
- As named function with
lapply
orsapply
...
Basically sapply
function in R does the same job as lapply()
function but returns a vector:
- lapply(X, FUN) Arguments: -X: A vector or an object -FUN: Function applied to each element of x
lapply(mtcars$mpg, my_func)
- sapply(X, FUN) Arguments: -X: A vector or an object -FUN: Function applied to each element of x
sapply(mtcars$mpg, my_func)
Now your question:
You can use a function in this case my_func
directly without defining or naming first as an anonymous function (means the function has not a name) like:
lapply(mtcars$mpg, function(x) ifelse(x==999, NA, x))
Note: essentially after function(x)
it is the body part of your named function my_func
.