我有一个不限数量的列表:parameter<-2,1,3,4,5......
我想用参数:
MyFunction('2')
MyFunction('1')
MyFunction('3') etc.
非常感谢您的任何提示
答案 0 :(得分:1)
与R中的大多数事情一样,处理此问题的方法不止一种。首先是tidyverse
解决方案,然后是基础R。
我没有详细了解您所需的输出,但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_chr
,map_int
等。在这种情况下,我们可以使用map_dbl
来获取返回值的向量。
map_dbl(parameter, plus_one)
基地R的apply
系列功能也可以满足您的需求。我更喜欢使用purrr
,但有些人喜欢使用内置函数。
lapply(parameter, plus_one)
sapply(parameter, plus_one)
你最终会得到相同的结果。
identical({map(parameter, plus_one)}, {lapply(parameter, plus_one)})
# [1] TRUE