【发布时间】:2017-01-11 23:16:39
【问题描述】:
我正在尝试创建一个功能,用户可以在其中选择他们想要使用的运算符,从而产生不同的输出。但我似乎无法让它工作。我知道我们不能将运算符分配给 R 对象,然后根据 R 对象名称将其用作运算符。有没有办法我可以做到这一点?或者也许是编写函数的更好方法?
test <- function(items, operator = "+"){
bank_alpha <- matrix(ncol=6)
colnames(bank_alpha) <- colnames(bank_alpha, do.NULL = FALSE, prefix = "Q")
colnames(bank_alpha)[6] <- "A"
alphabet <- LETTERS[seq(1:26)]
for (i in 1:items) {
item <- c(alphabet[i], alphabet[i operator 1], alphabet[i operator 2], alphabet[i operator 3], alphabet[i operator 4], alphabet[i operator 5])
bank_alpha <- rbind(bank_alpha, item)
bank_alpha <- na.omit(bank_alpha)
}
return(bank_alpha)
}
test(items=4, operator = "-")
【问题讨论】:
-
您想在
test中使用“operator”参数作为函数吗? IE。operator = "+"; match.fun(operator)(1, 3)?有很多更高级别的 R 函数示例,它们接受函数作为输入(例如Reduce、lapply、outer等) -
是的,我现在明白了。感谢您的快速回复!