r - R:如何在函数的循环中调用省略号变量中的元素?
问题描述
我使用省略号是因为我想在我的函数中使用不同数量的变量。我似乎无法在循环中调用各个元素并将它们用于简单的数学运算。
tst <- function(...) {
print(..1)
q = 1 + ..1
print(q)
for (i in 1:3) {
val <- get(paste0("..", i))
print(val)
s = 1 + val
}
}
如果我跑步,tst(1, 3, 4)
我希望得到像这样的输出
[1] 1
[1] 2
[1] 1
[1] 3
[1] 4
相反,我得到
[1] 1
get(paste0("..", i)) 中的错误:找不到对象 '..1'
这告诉我,在循环之外,..1
被识别为数字对象,但在循环内部却找不到它。
解决方案
只需在开始时将向量设置为等于参数,然后您就可以通过索引来引用它们。您使用的所有地方...
我都替换为索引向量val[[]]
:
tst <- function(...) {
val <- c(...)
print(val[[1]])
q = 1 + val[[1]]
print(q)
for (i in 1:3) {
print(val[[i]])
s = 1 + val[[i]]
}
}
输出:
> tst(1, 3, 4)
[1] 1
[1] 2
[1] 1
[1] 3
[1] 4
推荐阅读
- javascript - 将前端文件 HTML、CSS、JS 链接到后端 node.js
- javascript - 如何使用 html 和 php 保存文件 txt
- javascript - 正则表达式匹配可能被另一个单词分隔的多个单词,给出可能的中间单词列表
- html - 显示 cfgrid 列标题全文的描述或弹出窗口
- c - 在用户和内核空间之间配对获取/释放操作
- python - 如何根据位置值拆分列表元素
- javascript - 如何在反应中将新的 HTML 元素推送到现有的父元素?
- version-control - TortoiseGit 没有克隆存储库的选项
- java - 手动定义容器且未使用侦听器注释时如何在spring-kafka中暂停/恢复消费者
- matlab - 如何添加两个坐标已移动的矩阵