【问题标题】:Iterate independently with a for loop/ apply function through a whole segment of R script使用 for 循环/应用函数独立迭代整个 R 脚本段
【发布时间】:2018-07-18 09:34:49
【问题描述】:

我想用for-loop 或lapply 函数的想法遍历我的整个R 脚本,看看如果我更改一个值y,我的解决方案会有多么不同。

如果我用 for 循环来做的话

 numbers <- c(1,2,3,4)
 for (y in numbers){
 ...(lots of code with assignments to global environment, etc.)
 }

lapply

 numbers <-(c(1,2,3,4)
 lapply(numbers,function(y){...})

两者似乎都不是独立的,即我希望它从我放入此函数的那一点开始重新开始,而不是在全局环境中定义的第一个数字 1 的变量会干扰迭代的解决方案编号为 2。

所以本质上,我想要一个 R 脚本中的自动化版本,而不是手动更改 y 的值并查看我得到的解决方案。我想必须使用return() 或类似的方法返回感兴趣的变量,这样它才不会随着迭代而丢失?

【问题讨论】:

    标签: r for-loop lapply rscript


    【解决方案1】:

    我不认为你的问题很清楚。你能提供一个输出的例子吗?

    numbers <-(c(1,2,3,4))
    
    # Multiply each number by 2 and see what the output is
    lapply(numbers,function(y){y*2})
    

    这将获取每个“输入”数字“1、2、3 和 4”,并将每个元素乘以数字 2。输出应分别为“2、4、6 和 9”。

    【讨论】:

    • 实际上,lapplyreturn() 在正确的地方工作!我必须从我想要迭代的代码中创建一个函数,然后 lapply 覆盖它。问题:虽然for 循环在这种情况下不起作用,因为它与环境相混淆,即for 循环之后没有真正的功能,这是真的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 2021-04-13
    • 2021-12-20
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多