楼主: priss111
2486 11

请问:如何把数据集A重复观测日期在后的观测删除保留日期在先的观测? [推广有奖]

  • 0关注
  • 5粉丝

已卖:9份资源

副教授

16%

还不是VIP/贵宾

-

威望
0
论坛币
153 个
通用积分
47.5396
学术水平
11 点
热心指数
14 点
信用等级
10 点
经验
14935 点
帖子
472
精华
0
在线时间
808 小时
注册时间
2008-3-30
最后登录
2025-3-17

楼主
priss111 发表于 2013-8-9 12:35:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教各位大侠1个问题:

在数据集A中
如果变量1、变量2、变量3的取值相同
则认为2条及以上观测为重复观测

问题是:
如何根据变量6(日期),
将上述重复观测中日期在后的变量删除
而保留日期在先观测?



谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:重复观测 数据集 各位大侠 如何

沙发
24578901 在职认证  发表于 2013-8-9 13:20:29
matlab的unique()函数

藤椅
priss111 发表于 2013-8-9 13:33:01
24578901 发表于 2013-8-9 13:20
matlab的unique()函数
谢谢!

现在是SAS中如何实现?

板凳
scarfacetony 发表于 2013-8-9 17:31:37
  1. data a;
  2.         input a b c d;
  3.         cards;
  4. 1 2 3 4
  5. 1 2 4 5
  6. 1 2 3 6
  7. ;
  8. run;

  9. proc sql;
  10.         create table b as
  11.         select a,b,c, min(d) as d
  12.         from a
  13.         group by a,b,c;
  14. quit;
复制代码
是这个意思么
看了这个视频,我于是有了进股市的信心!
https://bbs.pinggu.org/thread-2787427-1-1.html

报纸
priss111 发表于 2013-8-9 21:58:49
scarfacetony 发表于 2013-8-9 17:31
是这个意思么
非常感谢!

是这个意思
但是不完全

具体如下:

1、要原始数据集b中其他的变量
2、如何定义生成的数据b1中的其他变量保持原有变量的格式(例如,日期变量不要显示为数值)
以数据集b.xls为例
凡 var4, var7,var13相同则认为是重复观测
删除var36(日期)时间在后的观测
保留var36(日期)时间在前的观测


地板
yongyitian 发表于 2013-8-9 23:17:49
  1. proc sql;
  2.     select *
  3.     from b
  4.     group by var4, var7, var11
  5.     having var36=min(var36);
  6. quit;
复制代码

7
priss111 发表于 2013-8-10 08:20:06
yongyitian 发表于 2013-8-9 23:17
非常感谢!

是这样。

最完整的code是:
  1. proc sql;
  2.         create table d as
  3.     select *
  4.     from b
  5.     group by var4, var7, var13
  6.     having var36=min(var36);
  7. quit;
复制代码

8
priss111 发表于 2013-8-10 08:27:19
谢谢 scarfacetony理解文字表达并给出sql原始code;
谢谢 yongyitian 完美补充.

另请问:

数据集有10万以上(变量比较多60个以上,上不封顶),
想把删除的观测也保存为另外的数据
1、sql的code如何补充?
2、除SQL思路外是否有其他思路具体code是什么?

谢谢!

9
yongyitian 发表于 2013-8-10 09:00:36
priss111 发表于 2013-8-10 08:27
谢谢 scarfacetony理解文字表达并给出sql原始code;
谢谢 yongyitian 完美补充.
  1. proc sql;
  2.    create table d as
  3.     select *
  4.         from b
  5.         group by var4, var7, var11
  6.         having var36 = min(var36);

  7.    create table e as
  8.     select *
  9.         from b
  10.         group by var4, var7, var11
  11.         having var36 > min(var36);
  12. quit;
复制代码

10
priss111 发表于 2013-8-10 09:14:39
yongyitian 发表于 2013-8-10 09:00
谢谢!

这code实现了1、的要求.

请问:

2、除SQL思路外是否有其他思路具体code是什么?

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

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