楼主: winniewang2222
17001 35

[问答] 求助:累加如何进行编程 [推广有奖]

  • 0关注
  • 21粉丝

已卖:2份资源

副教授

93%

还不是VIP/贵宾

-

威望
0
论坛币
1379 个
通用积分
61.7780
学术水平
24 点
热心指数
42 点
信用等级
23 点
经验
814 点
帖子
643
精华
0
在线时间
1098 小时
注册时间
2008-9-28
最后登录
2023-11-23

楼主
winniewang2222 发表于 2014-3-27 21:03:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一列数据y
0 3 4 5 1 6 6 9

请教:如何生成另一个变量Z, 使得Z1=0,Z=yi+yi-1 (从Z2开始)

是否为这样:
>z<-numeric(length(y))
>for (i in 1:length(y)) z[1]=0
>for (i in 2:length(y)) z[i]=y[i-1]+y[i]


请不吝赐教,非常感谢!!

二维码

扫码加我 拉你入群

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

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

关键词:length leng 非常感谢 For eng

世上万事,不过是一懒二拖三不读书。

沙发
wangyudongnj 发表于 2014-3-27 21:21:30
sum, cumsum
已有 1 人评分热心指数 收起 理由
winniewang2222 + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

藤椅
danica33 发表于 2014-3-27 22:08:04
  1. y0<-c(0,y[- length(y)])
  2. y+y0
复制代码
就行了,cumsum是前面所有元素累加,不是\[z_{i}=y_{i}+y_{i-1}\]
已有 2 人评分学术水平 热心指数 收起 理由
jmpamao + 1 这个向量化很精彩
winniewang2222 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

板凳
winniewang2222 发表于 2014-3-27 22:16:13
danica33 发表于 2014-3-27 22:08
就行了,cumsum是前面所有元素累加,不是
非常感谢详细的回答,这个得出来是一个数呢,还是一列数呢。比如在STATA中,我可以令变量b等于ai+bi-1
这样的出来的b,就是0,a2+a1, a3+a2+a1, a4+a3+a2+a1,等等

R中可以通过cumsum来得到这样的一列数据吗?

世上万事,不过是一懒二拖三不读书。

报纸
danica33 发表于 2014-3-27 22:19:55
winniewang2222 发表于 2014-3-27 22:16
非常感谢详细的回答,这个得出来是一个数呢,还是一列数呢。比如在STATA中,我可以令变量b等于ai+bi-1
这 ...
得到的是一列数,cumsum就是向量a=(a1,...,an),,cumsum(a)得到a1,a1+a2,a1+a2+a3,....a1+...+an
已有 1 人评分热心指数 信用等级 收起 理由
winniewang2222 + 1 + 1 热心帮助其他会员

总评分: 热心指数 + 1  信用等级 + 1   查看全部评分

地板
winniewang2222 发表于 2014-3-27 22:26:33
danica33 发表于 2014-3-27 22:19
得到的是一列数,cumsum就是向量a=(a1,...,an),,cumsum(a)得到a1,a1+a2,a1+a2+a3,....a1+...+an
明白了~!非常感谢!!

再请教一个问题,我将dta的数据导入到了R, 用
>data<-read.dta("D:/test.dta")
然后输入data后,显示的是
  a
1 0
2 3
3 4
4 6
...
这样的格式
我尝试对a进行加减乘除,比如a*d
我尝试
>c<-a*d
结果说找不到a
请问我是不是应该吧a转换一下格式还是怎样呢
世上万事,不过是一懒二拖三不读书。

7
danica33 发表于 2014-3-27 22:33:02
winniewang2222 发表于 2014-3-27 22:26
明白了~!非常感谢!!

再请教一个问题,我将dta的数据导入到了R, 用
你attach(data)看行不行,还有d是什么
已有 1 人评分学术水平 热心指数 收起 理由
winniewang2222 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

8
winniewang2222 发表于 2014-3-27 22:38:46
danica33 发表于 2014-3-27 22:33
你attach(data)看行不行,还有d是什么
谢谢建议,我试试
>d
[1] 1 4 5 7 8 ...
这个样子的,和a那样一列下来的格式不同

世上万事,不过是一懒二拖三不读书。

9
danica33 发表于 2014-3-27 22:41:37
winniewang2222 发表于 2014-3-27 22:38
谢谢建议,我试试
>d
[1] 1 4 5 7 8 ...
现在可以加减吗
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
winniewang2222 + 1 + 1 + 1 热心帮助其他会员

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

10
winniewang2222 发表于 2014-3-27 22:48:22
danica33 发表于 2014-3-27 22:41
现在可以加减吗
可以了!太好了!这似乎是把a给提出来了?

还有好几个问题,如果你要去休息,就再说啊,呵呵

之前有发帖问道排序的问题,回复建议order这个命令,因为我今天刚接触R,一下子很难很快弄明白怎么写code,不知道你熟不熟悉呢?

就是比如我将刚刚提取出来的a由大到小进行排序,然后产生一个新的变量x,x等于排序后a的序号。我尝试过这个命令
>cbind(year=as.numeric(rownames(data)),data)
可以得到year这个变量等于a的序号,但是问题在于,1,如何先对a排序,2,也是用attach(year)将year提取出来吗?
世上万事,不过是一懒二拖三不读书。

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

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