首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从用户定义的函数返回多个值

从用户定义的函数返回多个值
EN

Stack Overflow用户
提问于 2021-03-21 14:18:02
回答 2查看 41关注 0票数 0

我正在尝试在R中创建一个大约5000行和5-6列的虚拟数据集。我试图通过为每一列创建随机函数来实现它。但是,调用函数只返回一个值。我尝试实现它的代码如下:

代码语言:javascript
复制
Vertical <- function(a) {
  vec1 <- c('HiTech', 'BFSI', 'Insurance', 'Retail', 'Ecomm', 'Media', 'Govt')
  for(i in 1:a) {
    b <- sample(vec1,1)
    return(b)
  }
}

n <- Vertical(5000)

我需要变量'n‘来返回值的范围(总计5000),这是我无法实现的。请求一些关于它的帮助。谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-21 14:59:50

您可以一起对所有值进行采样,并将它们放入一个矩阵/data.frame中。

代码语言:javascript
复制
Vertical <- function(nr, nc) {
  vec1 <- c('HiTech', 'BFSI', 'Insurance', 'Retail', 'Ecomm', 'Media', 'Govt')
  as.data.frame(matrix(sample(vec1, nr * nc, replace = TRUE), nr, nc))
}

Vertical(6, 3)

#         V1     V2        V3
#1      BFSI HiTech      Govt
#2 Insurance  Ecomm Insurance
#3     Media   Govt    Retail
#4     Ecomm  Ecomm      BFSI
#5    HiTech   Govt     Ecomm
#6      Govt   Govt    Retail
票数 1
EN

Stack Overflow用户

发布于 2021-03-21 14:39:54

这样如何:

代码语言:javascript
复制
vec1 <- c('HiTech', 'BFSI', 'Insurance', 'Retail', 'Ecomm', 'Media', 'Govt')
b <- lapply(1:10, function(y) sample(vec1, y, replace=TRUE))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66729409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档