在 R 中,如何选择和应用函数向量的元素?

Posted

技术标签:

【中文标题】在 R 中,如何选择和应用函数向量的元素?【英文标题】:In R, how can an element of a vector of functions be selected and applied? 【发布时间】:2010-08-25 05:01:06 【问题描述】:

我有一个 R 问题——我想创建一个函数向量,然后能够按名称调用其中一个函数。但是,当我使用此名称时,我想使用一个映射到该名称的标签,这样我就可以在不更改代码的情况下随机使用哪个名称。例如:

#define tag
tag<-"F"
#define functions
f <- function(x) print(x^2)
g <- function(x) print(x^3)
#define vector
fs<-c(f,g)
names(fs)<-c("F", "G")
#create input data
x<-5
fs$F(x)
#this gives the desired output but I want to use tag
#that is, I want syntax which uses tag, so that which element I use from fs is flexible until tag is defined
#e.g. I had hoped the following would work, but it doesn't
fs[tag](x)

有什么建议吗?

【问题讨论】:

【参考方案1】:

使用这部分代码

#define vector
fs<-c(f,g)
names(fs)<-c("F", "G")

您已经创建了一个列表(试试class (fs)str (fs)

因此您最后一行的索引必须更改为:

fs[[tag]](x)

只需对索引进行一些操作,即可了解结构。 (例如查看fsfs[1]fs[[1]] 等等)

【讨论】:

或者一行fs 谢谢!这很有帮助。我想我试图将其取消列出但仍然无法正常工作(因为它仍然是一个列表)而让自己感到困惑。

以上是关于在 R 中,如何选择和应用函数向量的元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何使函数参数成为R中向量的元素?

将R链接到HANA时如何在SQL查询中选择全部或部分向量

选择向量中除一个之外的所有元素

R语言中向量的定义以及基本操作

R中的支持向量机特征选择示例

如何在 Shiny 中引用 ui.R 中的反应元素