2001 3

[数据管理求助] 求助如何分组内补全缺失值,感谢 [推广有奖]

  • 2关注
  • 5粉丝

已卖:294份资源

讲师

39%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
17.6240
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
6155 点
帖子
207
精华
0
在线时间
752 小时
注册时间
2019-3-25
最后登录
2026-1-29

楼主
海阔天空锦鲤 学生认证  发表于 2021-12-5 17:40:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str1 var1 str4 var2
  4. "a" "002w"
  5. "a" ""   
  6. "b" ""   
  7. "b" ""   
  8. "b" ""   
  9. "b" ""   
  10. "b" "342t"
  11. "c" "111g"
  12. "c" ""   
  13. "c" ""   
  14. "c" ""   
  15. "d" "334e"
  16. "d" "334e"
  17. end
复制代码

如何根据var1分组补全第2列的缺失字符,我尝试使用
bysort var1: replace var2=var2[_n-1] if var2==""
bysort var1: replace var2=var2[_n+1] if var2==""
但是,不像第1行[_n-1]运行一次就可以补全;第2行[_n+1]的命令需要循环很多次,才能把b分组下的var2补全。
实现
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str1 var1 str4 var2
  4. "a" "002w"
  5. "a" "002w"
  6. "b" "342t"
  7. "b" "342t"
  8. "b" "342t"
  9. "b" "342t"
  10. "b" "342t"
  11. "c" "111g"
  12. "c" "111g"
  13. "c" "111g"
  14. "c" "111g"
  15. "d" "334e"
  16. "d" "334e"
  17. end
复制代码


感谢大佬回复,不胜感激!

二维码

扫码加我 拉你入群

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

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

关键词:缺失值 generated generate install replace

回帖推荐

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

感谢用 dataex 展示资料,这非常有助于我们的试验与回答。请试试

沙发
黃河泉 在职认证  发表于 2021-12-5 18:05:44
感谢用 dataex 展示资料,这非常有助于我们的试验与回答。请试试
  1. gsort var1 -var2
  2. bys var1: replace var2 = var2[_n-1] if var2 == ""
复制代码

藤椅
海阔天空锦鲤 学生认证  发表于 2021-12-5 19:22:14
黃河泉 发表于 2021-12-5 18:05
感谢用 dataex 展示资料,这非常有助于我们的试验与回答。请试试
谢谢黄老师,您在上面写的命令运行一次就可以做到了

板凳
黃河泉 在职认证  发表于 2021-12-5 20:01:00
海阔天空锦鲤 发表于 2021-12-5 19:22
谢谢黄老师,您在上面写的命令运行一次就可以做到了
没错!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-2 03:23