首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户定义的函数`R``无法运行

用户定义的函数`R``无法运行
EN

Stack Overflow用户
提问于 2022-02-04 15:03:10
回答 1查看 44关注 0票数 0

我将学习如何在R中创建基于原始数据的模拟数据的函数。我可以访问玩具数据(这是保密的),我不允许分享。同时,数据的共享也太大了。

  1. 数据类似于下面的内容,但我缩小了
  2. 的大小

代码语言:javascript
复制
epsilon=2 
rs=matrix(rnorm(n=10000),nrow=10000, ncol=100) 
ival=matrix(rnorm(n=10, mean=50, sd=30), nrow=10, ncol=100) 
r1= matrix(c(5.5,5.7, 5, 6, 6.5, 7, 6.8, 7.4,8,10), nrow=10, ncol=1) 
r2= matrix(c(6.5,7, 6.5, 8, 10, 13, 13, 15,18,20), nrow=10, ncol=1) 

基于以上数据的

  1. ,现在我想模拟生成新的数据。因此,我创建了下面的函数来这样做。但看上去不太好。您的建议和帮助将非常感谢

代码语言:javascript
复制
toyfunction = function(epsilon, rs, ival, r1, r2 ){
  toydata=matrix(0, nrow=10000,ncol=100)
  r=matrix(0,nrow=10,ncol=100)
  r[1:10,]=5
  
  for(i in 1:1000){
    for(col in 1:100){
      #1-5 rows
      for(row in 1:5){
        toydata[row+(i-1)*10,col]=ival[row, col]+rs[row+(i-1)*10,col]
      }
      #6-10 rows
      for(row in 6:10){
        toydata[row+(i-1)*10,col]=toydata[row-5+(i-1)*10,col] + epsilon*log(r[row-1,1]/r[row-10,1]) + rs[row+(i-1)*10,col]
        
        if(toydata[row+(i-1)*10,col] < 45){
          r[row,col]=r1[row,1]
        }
        else{
          r[row,col]=r2[row,1]
        }
      }
    }
  }
}

mydata=toyfunction(epsilon,rs, ival,r1, r2)

我将非常感谢您的帮助和建议。我也假设这个函数将以矩阵的形式给出输出。这对我来说也是至关重要的,因为我以后要做一些矩阵代数来进行分析。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 16:35:23

我是新来的,所以我不能对你的问题补充任何意见。

你的问题是这个人:

epsilon*log(r[row-1,1]/r[row-10,1])

这是一个向量(try: i= 1,row = 6,col = 1);因此,在右边得到一个向量,试图替换矩阵上的零。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70988538

复制
相关文章

相似问题

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