楼主: jzhyue
1984 3

[其他] 求助:关于变量内条件求值的运算 [推广有奖]

  • 2关注
  • 3粉丝

已卖:7份资源

副教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
398 个
通用积分
477.5302
学术水平
60 点
热心指数
59 点
信用等级
48 点
经验
10958 点
帖子
454
精华
0
在线时间
1118 小时
注册时间
2005-12-31
最后登录
2025-12-9

楼主
jzhyue 发表于 2009-9-24 21:46:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有一个类似的问题想请教 老师:
如果有n个数据,结构如下,现要产生一个变量R:R=v/(相邻mod(id/10)==5的v),如果相邻mod(id/10)==5(意思就是最近的id尾数是5)的v值缺失,(相邻mod(id/10)==5的v)值取最近的mod(id/10)==5的v值,mod(id/10)==5的R为  .  。比如id 是21,它的相邻逢5 id应该是25,如果id==25的v值缺失,那么相邻逢5值应该是15,如果id==15的v值也缺失,那么只有35,并且只用找到这3个中的一个就可以,别的id 不用考虑。
id     v
1      8
2      6
3      5
4      6
5      5
6      6
7      9
8      5
9      6
10    2
11    3
12    5
13    6
14    8
15    5
16    4
17    2
18    6
19    5
20    9
…    …
二维码

扫码加我 拉你入群

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

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

关键词:Mod

回帖推荐

sungmoo 发表于3楼  查看完整内容

*若id为5的v的观测值非零且非缺失,可采用 g s=int(id/10) replace s=s-1 in l g t=v if mod(id,10)==5 g a=sum(t) g b=a-a[_n-1] bys a: egen c=max(b) replace t=c if (t==.|t==0)&mod(id,10)==5 bys s: egen m=max(t) sort id g r=v/m drop s t m a b c

sungmoo 发表于2楼  查看完整内容

*若id尾数为5的v的观测值非零且非缺失,可采用 g s=int(id/10) replace s=s-1 in l g t=v if mod(id,10)==5 bys s: egen m=max(t) sort id g r=v/m drop s t m

本帖被以下文库推荐

沙发
sungmoo 发表于 2009-9-25 17:01:29
*若id尾数为5的v的观测值非零且非缺失,可采用

g s=int(id/10)
replace s=s-1 in l
g t=v if mod(id,10)==5
bys s: egen m=max(t)
sort id
g r=v/m
drop s t m

藤椅
sungmoo 发表于 2009-9-25 17:17:18
*若id为5的v的观测值非零且非缺失,可采用

g s=int(id/10)
replace s=s-1 in l
g t=v if mod(id,10)==5

g a=sum(t)
g b=a-a[_n-1]
bys a: egen c=max(b)
replace t=c if (t==.|t==0)&mod(id,10)==5

bys s: egen m=max(t)
sort id
g r=v/m
drop s t m a b c

板凳
jzhyue 发表于 2009-9-25 21:37:10
谢谢sungmoo 老师:
您用形成新变量来进行分组处理,很巧妙!这是我没有想到的。谢谢
第一个方法我看懂了,第二个方法我还没有看懂,我继续的。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-31 14:22