楼主: 毛维准
4997 5

[有偿编程] [求助]R语言循环计算出问题,除第一行之外其他都是NA [推广有奖]

  • 0关注
  • 2粉丝

已卖:1099份资源

博士生

34%

还不是VIP/贵宾

-

威望
0
论坛币
39097 个
通用积分
13.5323
学术水平
13 点
热心指数
14 点
信用等级
11 点
经验
4121 点
帖子
146
精华
1
在线时间
125 小时
注册时间
2005-8-5
最后登录
2022-12-13

楼主
毛维准 发表于 2014-10-10 09:41:48 |AI写论文
100论坛币
各位好,我在用R进行循环计算,希望将a1,b1,c1的不同赋值组合起来得到不同的结果。
也就是说第一列a1有几个赋值如0.1, 0.4, 0.7, 1.0, 1.3,第二列有几个数值,第三列有几个数值,这些数值互相组合组成第四列与第五列的数值。
但是,在具体运算中只有第一行会有结果,其他行都是NA。每次运行程序,第一行的结果也会伴随不同赋值出现不同的结果。
在此附上code图与结果图,还请各位专家指教。非常感谢。特敬100论坛币聊表心意。

code如下
1.jpg

结果是

2.jpg


最佳答案

czshhh 查看完整内容

建议把row=1这条命令放到循环外面就可以了。你的row=row+1命令没有起作用
关键词:R语言 100论坛币 code 0论坛币 运行程序 运行程序

沙发
czshhh 发表于 2014-10-10 09:41:49
建议把row=1这条命令放到循环外面就可以了。你的row=row+1命令没有起作用

藤椅
毛维准 发表于 2014-10-10 10:02:32
czshhh 发表于 2014-10-10 09:53
建议把row=1这条命令放到循环外面就可以了。你的row=row+1命令没有起作用
谢谢老师解答,我对code做了如下处理,但是还是不行,您看看。
Data = matrix (NA, 1000, 5);
for (a in 1:5)
{
  a1 = a*0.3 - 0.2;
  for (b in 1:5)
  {
    b1 = b*0.4 - 0.1;
    for (c in 1:13)
    {
      c1 = c - 6;
      
      row = 1;
{
      Data[row,1] = a1
      Data[row,2] = b1
      Data[row,3] = c1
      Data[row,4] = a1 + b1 + c1
      Data[row,5] = a1*b1*c1
}
      row = row + 1;
      
    }
  }
}
最后的结果还是只有第一列有数值,其他是NA

板凳
毛维准 发表于 2014-10-10 10:04:47
czshhh 发表于 2014-10-10 09:53
建议把row=1这条命令放到循环外面就可以了。你的row=row+1命令没有起作用
老师,您说的是正确的,这样就对了,您看看是不是。

Data = matrix (NA, 1000, 5);
row = 1;
for (a in 1:5)
{
  a1 = a*0.3 - 0.2;
  for (b in 1:5)
  {
    b1 = b*0.4 - 0.1;
    for (c in 1:13)
    {
      c1 = c - 6;
      
      
{
      Data[row,1] = a1
      Data[row,2] = b1
      Data[row,3] = c1
      Data[row,4] = a1 + b1 + c1
      Data[row,5] = a1*b1*c1
}
row = row + 1;
      
    }
  }
}

报纸
毛维准 发表于 2014-10-10 10:09:09
czshhh 发表于 2014-10-10 09:41
建议把row=1这条命令放到循环外面就可以了。你的row=row+1命令没有起作用
奉上论坛币,还请笑纳。

地板
czshhh 发表于 2014-10-10 22:22:39
毛维准 发表于 2014-10-10 10:04
老师,您说的是正确的,这样就对了,您看看是不是。

Data = matrix (NA, 1000, 5);
呵呵,时间紧张没说清楚放在大循环外面,不好意思,让你费解半天

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 03:18