楼主: fjlhr
1769 5

求大神们一个关于数据处理的问题! [推广有奖]

  • 0关注
  • 23粉丝

已卖:3856份资源

学科带头人

4%

还不是VIP/贵宾

-

威望
1
论坛币
19025 个
通用积分
25.7115
学术水平
103 点
热心指数
115 点
信用等级
91 点
经验
85696 点
帖子
621
精华
3
在线时间
2035 小时
注册时间
2012-2-14
最后登录
2023-3-9

初级热心勋章 初级学术勋章

楼主
fjlhr 在职认证  发表于 2014-6-6 21:19:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
假如现在我有以下形式的数据集:

var1var2 var3 var1 var2 var3 ...var1 var2 var3
1 2 3 1 3 2 2 2 3
2 3 4 2 4 5 3 3 3
1 2 4 2 2 6 2 3 2
6 6 8 5 52 2 2 1

我如何将var1,var2,var3下面的数据汇总成3列,即:
var1var2 var3
12 3
2 3 4
1 2 4
6 6 8
1 3 2
2 4 5
2 2 6
5 5 2
2 2 3
3 3 3
2 3 2
2 2 1

求大神们赐教!因为有好多这样的分组需要合在一起,靠人工的话比较费时费力。


二维码

扫码加我 拉你入群

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

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

关键词:数据处理 VaR 数据集 在一起 如何

沙发
superlaw 发表于 2014-6-7 02:09:42
大神来啦!
这是数据格式reshape的问题,按照我的理解,在你的文件中,你有三个变量,但是你的数据不是n by 3的格式,而是n by 3*k的格式。 而你想数据变成n*k by 3的格式,这样你就方便对变量进行处理了。

方法很简单,用matlab比sas更简单,
data=load('filename');
nrow=size(data,1);
ncol=size(data,1);

nrow_new=nrow*(ncol/3);
ncol_new=3;

newdata=reshape(data,nrow_new,ncol_new);
然后输出

藤椅
farmman60 发表于 2014-6-7 09:20:57
  1. data have;
  2. input var1-var9;
  3. cards;
  4. 1         2         3                 1         3         2                 2         2         3
  5. 2         3         4                 2         4         5                 3         3         3
  6. 1         2         4                2         2         6                 2         3         2
  7. 6         6         8                 5         5        2                 2         2         1
  8. ;
  9. run;

  10. %let group=3;
  11. data want;
  12. set have;
  13. array vars _numeric_;
  14. array new_vars (&group);
  15. do i=1 to dim(vars);
  16.   if mod(i,3)=1 then new_vars(1)=vars(i);
  17.   if mod(i,3)=2 then new_vars(2)=vars(i);
  18.   if mod(i,3)=0 then new_vars(3)=vars(i);
  19.   count+1;
  20.   if count=&group then do;
  21.     output;
  22.         count=0;
  23.   end;
  24. end;
  25. drop var: i count;
  26. run;
复制代码

板凳
fjlhr 在职认证  发表于 2014-6-7 09:34:28
superlaw 发表于 2014-6-7 02:09
大神来啦!
这是数据格式reshape的问题,按照我的理解,在你的文件中,你有三个变量,但是你的数据不是n b ...
我按照你的意思试了一下,结果发现数据的相对位置都变了。。这个程序还是有问题的。

报纸
farmman60 发表于 2014-6-7 09:50:56
fjlhr 发表于 2014-6-7 09:34
我按照你的意思试了一下,结果发现数据的相对位置都变了。。这个程序还是有问题的。
  1. data want;
  2.   set have(keep=var1-var3)
  3.       have(keep=var4-var6 rename=(var4-var6=var1-var3))  
  4.       have(keep=var7-var9 rename=(var7-var9=var1-var3));
  5.   run;
复制代码

地板
木子星 发表于 2014-6-8 10:23:55
farmman60 发表于 2014-6-7 09:50
这个方法效率高 厉害  学习了 谢谢。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 07:18