在 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)
只需对索引进行一些操作,即可了解结构。
(例如查看fs
、fs[1]
、fs[[1]]
等等)
【讨论】:
或者一行fs 谢谢!这很有帮助。我想我试图将其取消列出但仍然无法正常工作(因为它仍然是一个列表)而让自己感到困惑。以上是关于在 R 中,如何选择和应用函数向量的元素?的主要内容,如果未能解决你的问题,请参考以下文章