楼主: capricorn2014
3691 6

[问答] 关于R中for循环的一点小问题 [推广有奖]

  • 1关注
  • 1粉丝

已卖:76份资源

本科生

96%

还不是VIP/贵宾

-

威望
0
论坛币
1295 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
1 点
经验
980 点
帖子
104
精华
0
在线时间
134 小时
注册时间
2012-7-14
最后登录
2021-9-29

楼主
capricorn2014 发表于 2016-5-30 20:57:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
捕获.PNG
如图,为什么第一个程序会报错
为什么把0赋值给b后,又正确了呢?
二维码

扫码加我 拉你入群

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

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

关键词:for循环 For 小问题 程序

沙发
zhangqun448448 发表于 2016-5-30 21:02:38
第一个程序没有预先定义变量b啊  系统当然找不到这个变量
第二个程序正好解决了这个问题
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
capricorn2014 + 1 + 1 + 1 + 1 热心帮助其他会员

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

藤椅
capricorn2014 发表于 2016-5-30 21:08:41
zhangqun448448 发表于 2016-5-30 21:02
第一个程序没有预先定义变量b啊  系统当然找不到这个变量
第二个程序正好解决了这个问题
太感谢了!
那么也就是说不一定要b=0喽,随便给b赋一个值,只要把它定义了就行了?

板凳
zhangqun448448 发表于 2016-5-30 22:46:32 来自手机
capricorn2014 发表于 2016-5-30 21:08
太感谢了!
那么也就是说不一定要b=0喽,随便给b赋一个值,只要把它定义了就行了?
嗯  最好是预设一个类别吧  比如赋值一个空向量或者空列表或者空矩阵或者空数据框给它

报纸
suzhzh 发表于 2016-5-31 09:41:13
Same error happened with a, you should also define a first.

地板
cheetahfly 在职认证  发表于 2016-5-31 10:14:08
补充一下:

首先,这个问题与在不在循环体内是无关的,在交互式环境下,也会出现同样的问题。

其次,在R语言当中,语法上是不需要预先定义变量的,在交互式环境下或者在程序中,用赋值语句 "<-","<<-","assign("a",1)"都可以直接赋值给未定义的变量,编译程序会自动根据赋值的内容确定变量的类型,自动分配内存地址,并将变量名与内存地址联系起来。这是R语言区别于其他语言的一个重要特点,既是R语言的灵活性所在,也是R语言的执行慢的重要原因之一。

最后,本案例的关键所在是'[<-'是一个build-in的“替换”函数,虽然也有一些“赋值”的功能,但主要是“替换”。当函数运行时`[<-`(b, i, i*5-4),会scoping变量b的值,发现没有,就停止执行,并提示出错的值。

7
只R初见 发表于 2016-5-31 10:37:17
b其实是个向量,r会自动的循环补齐,最好先生成一下b <- rep(0,59)

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

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