我有一般性问题和具体例子。一般的问题是:有没有办法捕获函数的结果,所以我可以过滤它们而不创建临时变量?
这是例外。如果我想在非1.0的相关矩阵中找到最高相关性,我可以:
tmp <- cor(stocks)
max(tmp[tmp < 1.0])
有没有办法在一行代码中执行此操作?
注意:我知道在这个特定实例中通过将对角线设置为0可能会得到相同的结果,但我想了解更一般的情况。如何对cor(股票)的结果进行子集或过滤?
答案 0 :(得分:5)
答案 1 :(得分:2)
您可以使用magrittr
中的管道运算符来执行此操作:
library('magrittr')
data("EuStockMarkets")
ans <-
cor(EuStockMarkets) %>%
.[. < 1] %>%
max
给出0.9911539
。
管道%>%
获取之前的计算结果并将其传递到下一行,您可以使用占位符.
来引用它。最后一行是写max(.)
的简短方法。