首页 > 解决方案 > 有人可以帮我理解“函数(x)”中的代码,$out的作用是什么?

问题描述

我正在学习lapply,有人可以帮我理解“函数(x)”中的代码,“$out”的作用是什么?谢谢

outs=lapply(names(qdata[,12:35]), function(x)
        hist(qdata[[x]], data=qdata, main="Histogram of Quality Trait",
             xlab=as.character(x), las=1.5)$out)

标签: rlapply

解决方案


这只是产生一系列直方图。如果我们替换qdatamtcars并进行一些小的调整,我们会得到:

par(mfrow = c(3, 4))

lapply(names(mtcars),
       function(x) hist(mtcars[[x]],
                        main = "Histogram of Quality Trait",
                        xlab = as.character(x), las = 1.5))

在此处输入图像描述

这里lapply所做的是遍历列名并为每一列生成一个直方图。

您共享的代码中有一些奇怪之处。$out不是由 生成的对象的成员hist,因此除了绘制直方图外,代码还返回NULL值列表。这$out可能只是防止列表将对象内容的页面吐出hist到控制台的一种方式。此调用后该outs变量无用。

此外,data不是一个命名参数,hist因此原始代码会为我产生警告。

另一种可能性是这是一个自定义hist函数,而不是基本 R 版本。


推荐阅读