gpt4 book ai didi

R中函数的返回结果

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

我在尝试创建一个包含 R 循环的函数时遇到了一些麻烦。循环工作正常,但是当我将它放入函数体内时,它不会再写入任何输出。

所以给定我的数据:

    df1<-data.frame(a=sample(1:50,10),b=sample(1:50,10),c=sample(1:50,10))

我创建了一个向量来存储我的结果和一个具有某些功能的循环

    result <- vector("list",10)

for (i in 1:10)
{
result[[i]] <- df1*i
}

当我尝试创建这样的函数时

    # make the loop a function
result2 <- vector("list",10)

loop.function<-
function(x,a,b){
for (i in a:b)
{
result2[[i]] <- x*i
}
}
loop.function(df1,1,10)

我在“result2”中没有得到任何数据。所以我认为语法中存在一些基本问题。谁能帮帮我?

最佳答案

您的函数不会返回它创建的列表。您需要添加一个 return 命令:

result2 <- vector("list",10)

loop.function<-
function(x,a,b){
for (i in a:b)
{
result2[[i]] <- x*i
}
return(result2) # added this row
}

顺便说一句:可以使用 lapply 创建此函数的较短版本:

myfun <- function(x, a = 1, b) {
lapply(seq(a, b), "*", x)
}

关于R中函数的返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456317/

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