R重复一个功能

时间:2017-07-26 17:31:17

标签: r

我有一个不限数量的列表:parameter<-2,1,3,4,5...... 我想用参数:

重复一个函数
 MyFunction('2')

 MyFunction('1')

 MyFunction('3')  etc.

非常感谢您的任何提示

1 个答案:

答案 0 :(得分:1)

与R中的大多数事情一样,处理此问题的方法不止一种。首先是tidyverse解决方案,然后是基础R。

purrr /地图

我没有详细了解您所需的输出,但map包中的purrr功能将适用于您描述的情况。让我们使用函数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_chrmap_int等。在这种情况下,我们可以使用map_dbl来获取返回值的向量。

map_dbl(parameter, plus_one)

基础R

基地R的apply系列功能也可以满足您的需求。我更喜欢使用purrr,但有些人喜欢使用内置函数。

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

你最终会得到相同的结果。

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