R 在不改变函数调用的情况下,从单个对象向多个参数提供参数?

R 在不改变函数调用的情况下,从单个对象向多个参数提供参数?,r,R,有没有办法将多个输入作为单个对象提供给函数 例子 假设一个函数需要2个输入 funct <- function(x, y) { x * y } funct(2, 7) # [1] 14 从你的问题中,我知道你需要用一个参数把x,y的值传递给函数 实现这一点的最佳方法是传递列表或字典,并在函数中使用它们: 如果将其作为列表或数组传递,请执行以下操作 `funct <- function(x) { x[[1]] * x[[2]] }` `inputs <- list(

有没有办法将多个输入作为单个对象提供给函数

例子 假设一个函数需要2个输入

funct <- function(x, y) {
  x * y
}

funct(2, 7)
# [1] 14

从你的问题中,我知道你需要用一个参数把x,y的值传递给函数

实现这一点的最佳方法是传递列表或字典,并在函数中使用它们:

如果将其作为列表或数组传递,请执行以下操作

`funct <- function(x) {
  x[[1]] * x[[2]]
}`

`inputs <- list(2, 7)
 funct(inputs)`

`funct@David实现了相同的功能,但不是以我需要的方式实现的(我只需要通过更改输入来实现),因为我无法控制函数或函数的调用方式
输入您可能可以执行
funct(c(2,7)[1],c(2,7)[2])
。我需要强调的是函数及其调用方式无法更改,它将始终是
funct(输入)
。我唯一可以更改的是
input
对象(对于任何对象),我想初步的问题是“是否有任何方法(任何方法)可以为一个期望为2的函数提供1个输入?”您好,谢谢尝试。这两种方法都涉及改变功能。我无法更改函数或其调用方式(即
funct(inputs)
)感谢您的建议,我认为您没有阅读最后一行可以使用现有函数的内容。尝试第二种解决方案涉及更改函数(我无法做到),但是如果我们尝试不更改我们得到的函数:
funct(inputs)中的错误:参数“y”丢失,没有默认值。我觉得这很酷,你可以在R里做一个杂烩,但我不知道。您可以单独获得我的支持,即使它不能解决当前的问题
do.call(funct,list(2,7))
与您现有的函数一起工作。我在记录的最后一行提到过,我不认为我所要求的是可能的,但我要问的是,万一有什么我没有发现的方法。我首先尝试的是一个向量和一个列表,散列是一个很棒的主意。也许这是不可能的。。
funct(inputs)
# [1] 14
`funct <- function(x) {
  x[[1]] * x[[2]]
}`

`inputs <- list(2, 7)
 funct(inputs)`
`funct <- function(input) {
  library(hash)
  input[["x"]] * input[["y"]]
}`

`library(hash)
 inputs <- hash() 
 inputs[["x"]] <- 2
 inputs[["y"]] <- 7
 funct(inputs)`