2017-07-26 128 views
2

我有一個清單,不限次數:parameter<-2,1,3,4,5...... 我想重複的功能與參數:[R重複功能

MyFunction('2') 

MyFunction('1') 

MyFunction('3') etc. 

非常感謝您任何提示

+1

查看'lapply',類似於:'lapply(parameter,MyFunction)'。 –

回答

1

最喜歡的R中的事情,處理這個問題的方法不止一種。該tidyverse解決方案第一,其次是基礎R.

purrr /圖

我沒有你想要的輸出細節,但是從purrrmap功能會在你所描述的情況下工作。我們用功能plus_one()來演示。

library(tidyverse) # Loads purrr and other useful functions 

plus_one <- function(x) {x + 1} # Define our demo function 

parameter <- c(1,2,3,4,5,6,7,8,9) 

map(parameter, plus_one) 

map返回一個列表,這並不總是需要的。對於特定種類的輸出,有專門的版本map。根據你想要做什麼,你可以使用map_chr,map_int等。在這種情況下,我們可以使用map_dbl來獲得返回值的向量。

map_dbl(parameter, plus_one) 

基礎R

apply家族從基礎R功能也可能滿足您的需求。我更喜歡使用purrr,但有些人喜歡堅持內置功能。

lapply(parameter, plus_one) 
sapply(parameter, plus_one) 

您最終獲得了相同的結果。

identical({map(parameter, plus_one)}, {lapply(parameter, plus_one)}) 
# [1] TRUE