我正在尝试使用For循环迭代生成一些函数:

# Create a list to hold the functions
funcs <- list()
funcs[]

# loop through to define functions
for(i in 1:21){

    # Make function name
    funcName <- paste( 'func', i, sep = '' )

    # make function
    func = function(x){x * i}

    funcs[[funcName]] = func

    }


但是,它没有按我希望的那样工作,因为没有在每个函数中评估i值。我想尝试将函数定义为等于x * 1; x * 2;等等,但是我最终得到的是x * i;我在21岁。

我尝试使用eval()函数,结果只是存储了x * eval(i)。

最佳答案

检查这一项:

# Create a list to hold the functions
funcs <- list()
funcs[]

# loop through to define functions
for(i in 1:21){

    # Make function name
    funcName <- paste( 'func', i, sep = '' )

    # make function
    func = paste('function(x){x * ', i,'}',sep = '')

    funcs[[funcName]] = eval(parse(text=func))

    }

09-26 23:14