楼主: zyp860107
1192 8

[数据管理求助] 引用变量的类型 [推广有奖]

  • 1关注
  • 8粉丝

讲师

77%

还不是VIP/贵宾

-

威望
0
论坛币
1212 个
通用积分
81.0733
学术水平
6 点
热心指数
10 点
信用等级
3 点
经验
10288 点
帖子
351
精华
0
在线时间
372 小时
注册时间
2009-5-3
最后登录
2023-9-18

楼主
zyp860107 在职认证  学生认证  发表于 2017-12-2 16:05:12 |只看作者 |坛友微信交流群|倒序 |AI写论文
50论坛币
我要替换一个数据,这个数据里面有字符变量 和数值变量 ,想把数据里所有变量的空值替换为0,所以用如下循环:
foreach m of var * {
replace `m'=0 if `m'==.
}
但是字符变量是不能运行的,所以我得在replace后面加个条件,把字符变量排除,那怎么识别变量是否是字符变量呢

最佳答案

关键词:replace foreach place Reach 字符变量

回帖推荐

黃河泉 发表于2楼  查看完整内容

试试
经济是优化资源配置
沙发
黃河泉 在职认证  发表于 2017-12-2 16:05:13 |只看作者 |坛友微信交流群
zyp860107 发表于 2017-12-2 19:46
想要达到的效果是:如果变量是数值型,那么就把空值替换成0,当然,有非常多的变量,这只是举个例子
试试
  1. mvencode _all, mv(0)
复制代码

使用道具

藤椅
黃河泉 在职认证  发表于 2017-12-2 16:29:42 |只看作者 |坛友微信交流群
请用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与    https://bbs.pinggu.org/thread-5917273-1-1.html

使用道具

板凳
zyp860107 在职认证  学生认证  发表于 2017-12-2 19:46:30 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-12-2 16:29
请用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供 ...
  1. * Example generated by -dataex-. To install: ssc        install        dataex
  2. clear
  3. input str1 var1 float var2 str1 var3 float var4
  4. "a" 1 "a" 1
  5. "b" 2 "b" 2
  6. ""  . ""  0
  7. "c" 3 "c" 3
  8. end
复制代码
想要达到的效果是:如果变量是数值型,那么就把空值替换成0,当然,有非常多的变量,这只是举个例子

使用道具

报纸
zyp860107 在职认证  学生认证  发表于 2017-12-2 23:30:45 |只看作者 |坛友微信交流群
自己顶一下

使用道具

地板
zyp860107 在职认证  学生认证  发表于 2017-12-2 23:31:37 |只看作者 |坛友微信交流群
请高人指点

使用道具

7
zyp860107 在职认证  学生认证  发表于 2017-12-4 09:34:04 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-12-3 07:26
试试
我自己琢磨出来了一个循环:
g t="float"
foreach m of var * {
local x:type `m'
if t=="`x'"{
replace `m'=0 if `m'==.
}
}
drop t
不过还是大神牛啊,连续解答我两个问题,无限膜拜

使用道具

8
zyp860107 在职认证  学生认证  发表于 2017-12-4 09:34:06 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-12-3 07:26
试试
我自己琢磨出来了一个循环:
g t="float"
foreach m of var * {
local x:type `m'
if t=="`x'"{
replace `m'=0 if `m'==.
}
}
drop t
不过还是大神牛啊,连续解答我两个问题,无限膜拜

使用道具

9
zyp860107 在职认证  学生认证  发表于 2017-12-4 09:34:11 |只看作者 |坛友微信交流群
黃河泉 发表于 2017-12-3 07:26
试试
我自己琢磨出来了一个循环:
g t="float"
foreach m of var * {
local x:type `m'
if t=="`x'"{
replace `m'=0 if `m'==.
}
}
drop t
不过还是大神牛啊,连续解答我两个问题,无限膜拜

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 09:04