gpt4 book ai didi

R - 在另一个函数内的函数中定义一个对象

转载 作者:行者123 更新时间:2023-12-02 15:02:55 25 4
gpt4 key购买 nike

我在另一个函数中有一个函数,如下所示:

func2 <- function(x=1) {ko+x+1}
func3= function(l=1){
ko=2
func2(2)+l
}
func3(1)

它显示错误:func2(2) 错误:找不到对象“ko”。基本上我想在 func2 中使用对象 ko 直到调用 func3 才会定义。有什么解决办法吗?

最佳答案

是的,可以修复:

func2 <- function(x=1) {ko+x+1}
func3= function(l=1){
ko=2
assign("ko", ko, environment(func2))
res <- func2(2)+l
rm("ko", envir = environment(func2))
res
}
func3(1)
#[1] 6

如您所见,这非常复杂。这通常表明您没有遵循良好做法。好的做法是将 ko 作为参数传递:

func2 <- function(x=1, ko) {ko+x+1}
func3= function(l=1){
ko=2
func2(2, ko)+l
}
func3(1)
#[1] 6

关于R - 在另一个函数内的函数中定义一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48447665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com