function(x) 在 R 中是如何工作的?

How function(x) works in R?

data =data.frame(sapply(data,function(x) ifelse((x==999),NA,x)))

你能解释一下 function(x)....,x 是如何工作的吗?我知道这个函数的输入和输出是什么,它只是用数据框中的 NA 替换了 999 个值,但我想知道这个函数 (x) 在一般情况下是如何工作的。

这是你的函数,名称为 my_func:它接受一个值 x 检查它是否为 999,如果不是它返回 x 的值,如果是它返回 999 :

my_func <- function(x) {
  ifelse(x==999, NA, x)
}

您现在可以按如下方式使用此功能:

  1. 命名函数独立:
my_func(mtcars$mpg)
  1. 作为具有 lapplysapply 的命名函数 ...

基本上 sapply R 中的函数与 lapply() 函数的作用相同,但 returns 一个向量:

  • lapply(X, 乐趣) 参数: -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