2017-04-26 63 views
0

我總是碰到想要使用函數的參數到apply函數的問題。我環顧四周,但我無法找到合適的答案...如何在函數參數中包含函數參數?

例如

我有一個像

dput (tab) 

> structure(c(108.13, 108.13, 107.7, 107.66, 107.65, NA, NA, 115.56, 
115.5, 115.45, NA, NA, NA, 122.72, 122.66, 124.81, 124.82, 124.87, 
124.91, 124.94, NA, NA, NA, NA, 130.18), .Dim = c(5L, 5L), .Dimnames = list(
    NULL, NULL)) 

一個簡單的矩陣我想要得到的最低每列。

我會做這樣的事情:

apply (test, 2, min) 
> 107.65  NA  NA 124.81  NA 

但現在,讓我們說,我想跳過NAs

第一列,我會做

min (test[,1], min(na.rm = TRUE)) 
> 107.65 

但我不能用

apply (test, 2, min(na.rm = TRUE)) 

所以,我怎麼傳遞參數給內部apply的功能?

+5

'apply(test,2,min,na.rm = T)'See this http:// stackoverflo w.com/questions/14427253/passing-several-arguments-to-fun-of-lapply-and-others-apply – ahly

回答

-2

我們可以從matrixStats

library(matrixStats) 
colMins(tab, na.rm = TRUE) 

使用矢量colMins當我們不知道如何使用的參數,匿名函數調用可用於

apply(test, 2, function(x) min(x, na.rm = TRUE)) 

或以其他@ahly建議