楼主: yawenliu606
17562 9

对变量重新赋值 [推广有奖]

  • 0关注
  • 1粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
46.3696
学术水平
11 点
热心指数
10 点
信用等级
9 点
经验
164 点
帖子
11
精华
0
在线时间
6 小时
注册时间
2009-12-23
最后登录
2012-4-16

楼主
yawenliu606 发表于 2010-9-20 06:33:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我现在有var1(string),想根据它生成var2(float),数值从0开始,每当var1的观察值发生变化时,var2自动加1.
请问怎么做?
谢谢大家啦!
二维码

扫码加我 拉你入群

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

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

关键词:string float tring RING VaR 变量 赋值

沙发
天仕 在职认证  发表于 2010-9-20 07:34:17
首先对var1排序,然后逐个判断前后两个观察值是否一样,不一样则加一。

比如说
sort var1
g var2 = 1

forvalue i = 2(1)_N {
replace var2 = var2[_n-1]       if var1[_n] == var1[_n-1]  in `i'
replace var2 = var2[_n-1]+1   if var1[_n] != var1[_n-1]  in `i'
}

藤椅
yawenliu606 发表于 2010-9-20 08:32:48
这个看上去好极了。不过运行的时候报
invalid syntax。
这是怎么回事呢?
2# 天仕

板凳
zengyitop 发表于 2010-9-20 09:05:34
yawenliu606 发表于 2010-9-20 08:32
这个看上去好极了。不过运行的时候报
invalid syntax。
这是怎么回事呢?
2# 天仕
g 改成gen 就可以了

报纸
yawenliu606 发表于 2010-9-20 09:11:42
gen 我已经改了。这个不是问题的。
:)
还是语法错误,怎么回事?
4# zengyitop

地板
天仕 在职认证  发表于 2010-9-20 13:07:37
那个_N要改为你的样本个数。
我不知道你的样本个数,顺手写了_N。
我试了一下,下面的程序是可以的。我的样本数为4

sort var1
g var2 = 1

forvalue i = 2(1)4 {
replace var2 = var2[_n-1]        if var1[_n] == var1[_n-1]  in `i'
replace var2 = var2[_n-1]+1    if var1[_n] != var1[_n-1]  in `i'
}

7
xlgray 发表于 2010-9-20 14:45:43
可以试试这个:
sort var1
by var1:gen var2=1 if _n==1
replace var2=sum(var2)

8
天仕 在职认证  发表于 2010-9-20 18:23:06
7# xlgray

厉害!

9
yawenliu606 发表于 2010-9-20 20:58:42
谢谢。呵呵。
:)
6# 天仕

10
yawenliu606 发表于 2010-9-20 21:02:44
大家都好厉害。有一个朋友用了另外一种方法,列下来,或许对后来人有帮助。
encode var1 , generate(var2)‏

我还有一个问题。
总共有200个变量,所有变量名字都是英文。但有20多个变量的值是中文,其他变量是数字或者英文。
有没有方法快速列出中文值的变量名字?
谢谢~
.org/bbs/redirect.php?goto=findpost&pid=7056257&ptid=914945]7#[/url] xlgray

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

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