楼主: Jada16
4670 9

[实际应用] 【已解决】R计算结果没问题却显示成NULL [推广有奖]

  • 2关注
  • 1粉丝

已卖:2份资源

硕士生

97%

还不是VIP/贵宾

-

威望
0
论坛币
16 个
通用积分
5.0046
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
163 点
帖子
152
精华
0
在线时间
198 小时
注册时间
2013-5-8
最后登录
2022-11-29

楼主
Jada16 发表于 2017-4-14 16:57:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
写了一个下面的这个R指令,其中的bx1到bx10的值前面都计算出来了,然后想生成下面这个fbe的向量出来,fbe里面应该就有这十个数的。
fbe<-c(bx1,bx2,bx3,bx4,bx5,bx6,bx7,bx8,bx9,bx10)
但是当跑完了后,却出来了下面这个结果:
> fbe
[1] 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432

只有8个数,R好像自动就把其中两个值给去掉了>.<

后又检查了一下,发现问题出现在这里:
> bx10=if(b1[10]>b2)b2;if(b1[10]<b2&b1[10]>=0)b1[10];if(b1[10]<0)0
[1] 0.06572
> bx10
NULL
明明 bx10 计算为0.06572,可是再输入 bx10却成了 “NULL”。 同样的,bx6=0, 却也是显示成了“NULL”, 然后这两个数在 fbe 里面就直接去掉了,所以才只剩下了8个数。

请问前辈们,如何才能让 bx6 和 bx10的数值都不显示为null 呢,这到底怎么回事?

感谢各位前辈^^

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:怎么办 向量 显示

沙发
jpang 发表于 2017-4-14 17:07:19
> fbe <- c(0.10432,0,0,0.10432,0.10432,0.10432,0.10432,0.10432,0.10432,0.10432)
> fbe
[1] 0.10432 0.00000 0.00000 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432

i still get zeros back.

藤椅
Jada16 发表于 2017-4-16 12:53:37
jpang 发表于 2017-4-14 17:07
> fbe  fbe
[1] 0.10432 0.00000 0.00000 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432
我这边还是很奇怪,检查了前面的数,其中的bx6=0, 显示为 null, 然后再输入一次 fbe,就还是把这个bx6给过滤掉了,又只剩下8个数在fbe里头了>.< 肿么回事呢。。。

板凳
Jada16 发表于 2017-4-16 12:57:56
jpang 发表于 2017-4-14 17:07
> fbe  fbe
[1] 0.10432 0.00000 0.00000 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432 0.10432
b1=a1-fae
b2=fb*fr
bx1=if(b1[1]>b2)b2;if(b1[1]<b2&b1[1]>=0)b1[1];if(b1[1]<0)0
bx2=if(b1[2]>b2)b2;if(b1[2]<b2&b1[2]>=0)b1[2];if(b1[2]<0)0
bx3=if(b1[3]>b2)b2;if(b1[3]<b2&b1[3]>=0)b1[3];if(b1[3]<0)0
bx4=if(b1[4]>b2)b2;if(b1[4]<b2&b1[4]>=0)b1[4];if(b1[4]<0)0
bx5=if(b1[5]>b2)b2;if(b1[5]<b2&b1[5]>=0)b1[5];if(b1[5]<0)0
bx6=if(b1[6]>b2)b2;if(b1[6]<b2&b1[6]>=0)b1[6];if(b1[6]<0)0
bx7=if(b1[7]>b2)b2;if(b1[7]<b2&b1[7]>=0)b1[7];if(b1[7]<0)0
bx8=if(b1[8]>b2)b2;if(b1[8]<b2&b1[8]>=0)b1[8];if(b1[8]<0)0
bx9=if(b1[9]>b2)b2;if(b1[9]<b2&b1[9]>=0)b1[9];if(b1[9]<0)0
bx10=if(b1[10]>b2)b2;if(b1[10]<b2&b1[10]>=0)b1[10];if(b1[10]<0)0
fbe<-c(bx1,bx2,bx3,bx4,bx5,bx6,bx7,bx8,bx9,bx10)

这是前面的计算过程,后来我一一检查了一下,除了bx6=null, bx10=0.06572之外,其它的数全部都是0.10432, 可不知为何,在最后一步,合成 fbe 的时候,却把 bx6 和 bx10都给去掉了。。只剩下了0.10432的数值。。真不知道这是怎么回事。。

报纸
Jada16 发表于 2017-4-16 13:09:49
> bx10=if(b1[10]>b2)b2;if(b1[10]<b2&b1[10]>=0)b1[10];if(b1[10]<0)0
[1] 0.06572
> bx10
NULL
如上面这个结果所示,明明 bx10 计算出来的结果是0.06572, 可是在输入 bx10后,出来的结果却是 “NULL” 我想问题主要出在这里。就是不明白为什么会这样。。

地板
stzhao 在职认证  发表于 2017-4-16 13:11:21
虽然看不到你的数据,但我猜你的赋值有问题,试试这样改
  1. bx1 = ifelse(b1[1] >= b2, b2, ifelse(b1[1] < b2 & b1[1] >= 0, b1[1], 0))
复制代码
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 10 + 5 热心帮助其他会员
Jada16 + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 15  学术水平 + 1  热心指数 + 6  信用等级 + 1   查看全部评分

7
Jada16 发表于 2017-4-16 13:21:51
stzhao 发表于 2017-4-16 13:11
虽然看不到你的数据,但我猜你的赋值有问题,试试这样改
前辈太厉害了!{:2_31:} 赞!! 解决了问题了! 果然是我的赋值写的有问题!

感谢前辈!!

8
Jada16 发表于 2017-4-16 13:25:35
stzhao 发表于 2017-4-16 13:11
虽然看不到你的数据,但我猜你的赋值有问题,试试这样改
不过还是很好奇,为啥我那么写就不行,按您这个写就没问题了呢? 看起来算出来的数都一样的呀? 这是什么原因?

9
stzhao 在职认证  发表于 2017-4-16 13:39:06
Jada16 发表于 2017-4-16 13:25
不过还是很好奇,为啥我那么写就不行,按您这个写就没问题了呢? 看起来算出来的数都一样的呀? 这是什么 ...
不用谢
如果用你的做法,应该用if, else if, else语句赋值,赋值命令放在条件语句里面

10
Jada16 发表于 2017-4-16 13:52:53
stzhao 发表于 2017-4-16 13:39
不用谢
如果用你的做法,应该用if, else if, else语句赋值,赋值命令放在条件语句里面
明白,就是我的code还是没有写全,所以辨认不出来值了吧?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-20 15:02