楼主: 水舞者
1136 1

[问答] 关于lapply中的变量问题 [推广有奖]

  • 0关注
  • 2粉丝

本科生

48%

还不是VIP/贵宾

-

威望
0
论坛币
42 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
2 点
经验
1489 点
帖子
67
精华
0
在线时间
62 小时
注册时间
2015-6-7
最后登录
2021-7-22

楼主
水舞者 发表于 2016-10-13 15:46:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
是这样,我一开始碰到了这样的问题:首先声明变量test<-NULL;
然后用lapply进行计算的时候需要计数,里面有一句test<-i+nrow(f),这里面i和nrow(f)是lapply这个函数里面的变量;
lapply跑完后我需要看看test到底是多少,但是这个时候输出test的时候还是NULL。
我在想这个是不是就是没有声明test是全局变量?那么在R语言中如何声明全局变量呢?

再就是,我后面在测试这件事的时候,发现这样一个有趣的问题:
l<-list(a=1:3,b=2:6)
c<-lapply(l,function(ll){
        b<-3
        ll+3
})

这样输出的话,
> c
$a
[1] 4 5 6

$b
[1] 5 6 7 8 9

并且找不到b。
但是如果我把lapply里面的语句掉一个顺序:
l<-list(a=1:3,b=2:6)
c<-lapply(l,function(ll){
        ll+3
        b<-3
})

c的输出就变成了:
> c
$a
[1] 3

$b
[1] 3

仍然找不到b。
这是为什么呢?
求教,谢谢!!!



二维码

扫码加我 拉你入群

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

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

关键词:lapply apply appl App test

沙发
水舞者 发表于 2016-10-13 15:55:46
嗷嗷嗷~我自己先来解答一下我的问题吧。。。
第一个问题,如何定义全局变量,有两种方法:
方法一:就是在主程序先a<-NULL,然后在子程序里面赋值的时候用<<-代替<-;
方法二:在子程序的最后写reture()。
第二个问题我刚看书查到了,里面说子程序一般都要写return(object),如果不写的话就默认返回最后一个表达式。
吼吼吼~
已有 1 人评分经验 收起 理由
李会超 + 40 鼓励积极发帖讨论

总评分: 经验 + 40   查看全部评分

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

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