首页 > 解决方案 > 使用“$”并在 R 中的一行中运行函数的好习惯

问题描述

今天我似乎是一个“奇怪”的事情,我想知道这是否是一个好习惯。基本上有一个列表:

testList <- list("columnA" = c(1, 2, 3), 
                 "columnB" = c(11,22,33))

然后是一个函数:

calculateMean <- function(input){
  
  out <- lapply(input, mean)
  return(out)
  
}

和这个:

resultTest <- calculateMean(testList)$columnA

问题:在不将函数结果存储在中间步骤中的情况下引用函数结果是否是一种好习惯?

标签: rfunction

解决方案


我们可以使用sapply并返回一个命名向量并将其存储为单个向量,并将其用于其他情况,即假设我们想要获取该max向量的 ,它可以直接应用而unlist不是list.

calculateMean <- function(input){
  
  out <- sapply(input, mean)
  return(out)
  
}

-输出

calculateMean(testList)
columnA columnB 
      2      22 

关于存储输出,这取决于即如果我们想提取'columnB'的输出,我们可能需要再次运行它并执行$。相反,将其保存为单个对象并根据需要提取


推荐阅读