请选择 进入手机版 | 继续访问电脑版
楼主: freetiger666
3553 8

悬赏数据合并和相关性分析的代码 [推广有奖]

  • 1关注
  • 0粉丝

准贵宾(季)

高中生

60%

还不是VIP/贵宾

-

威望
0
论坛币
2832 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
295 点
帖子
27
精华
0
在线时间
37 小时
注册时间
2012-12-19
最后登录
2013-3-29

freetiger666 发表于 2013-1-11 10:57:46 |显示全部楼层 |坛友微信交流群
200论坛币

文件夹MyFold内有多个csv文件,格式均如下:

2012/2/14


4454


4465


4436


4439


142250


431430


2012/2/15


4444


4453


4429


4433


87452


429112


2012/2/16


4439


4443


4409


4418


129890


421210


2012/2/17


4426


4447


4421


4440


143206


440640


要求:

1)      将所有文件相同日期的数据中第五列合并成新的数据集MyNewData,形如:

Date


Data1


Data2


Data3




datan


2012/2/15


4433


4453


4429




29112


2012/2/16


4418


4443


4409




21210


2012/2/17


4440


4447


4421




40640


Data1-datan为原csv文件的文件名(不包括括号以内部分),实际并不如此规则

2)      MyNewData做相关性分析,分析data1...datan之间是否有相关性。


本求助对被选用者发放200论坛币,答案有价值但未被采纳者酌情奖励。

可能表述不够清晰,欢迎提问。谢谢!

关键词:相关性分析 数据合并 相关性 200论坛币 Data 4453 相关性
whiteice 发表于 2013-1-11 15:17:00 |显示全部楼层 |坛友微信交流群
1,使用sql语句可以完成
2,使用sas,可以搞定
人在尘世间,心在三界外;若无纷繁事,何羡天上仙。

使用道具

ziyenano 发表于 2013-1-11 15:32:33 |显示全部楼层 |坛友微信交流群
数据能不能以附件发上来

使用道具

freetiger666 发表于 2013-1-12 11:12:09 |显示全部楼层 |坛友微信交流群
MyFold.rar (96.97 KB) 本附件包括:
  • CT9046(日报).csv
  • mmj890(日报).csv
  • Yik9056(日报).csv
不好乙稀!答复晚了。数据文件包见附件

使用道具

freetiger666 发表于 2013-1-13 09:23:04 |显示全部楼层 |坛友微信交流群
求围观

使用道具

ziyenano 发表于 2013-1-13 12:50:20 |显示全部楼层 |坛友微信交流群
data ex;
input
date:yymmdd10. file:$100. num ;
format date yymmdds10.;
cards;
;
run;

filename folder pipe 'dir E:\MyFold\*.csv /b';

%macro import(name=);
data temp(drop=i);
infile  "E:\MyFold\&name." dlm=',';
length file $ 100;
input date:yymmdd10. @;
file=scan("&name",1,'(');
do i=1 to 6;
input num@@;
if i=4 then output;
end;
proc append base=ex data=temp;
run;
%mend;

data _null_;
infile folder;
input char:$100.;
call execute(compress('%import('||'name='||char||')'));
run;

proc sort data=ex out=ex1;
by date;

proc transpose data=ex1 out=mynewdata(drop=_name_);
by date;
id file;
var num;
run;

proc corr data=mynewdata(drop=date) nomiss;
var _all_;
run;

使用道具

freetiger666 发表于 2013-1-14 09:28:46 |显示全部楼层 |坛友微信交流群
感谢ziyenano!运行没能通过:
  1. 127  data ex;
  2. 128  input
  3. 129  date:yymmdd10. file:$100. num ;
  4. 130  format date yymmdds10.;
  5. 131  cards;

  6. NOTE: 数据集 WORK.EX 有 0 个观测和 3 个变量。
  7. NOTE: “DATA 语句”所用时间(总处理时间):
  8.       实际时间          0.01 秒
  9.       CPU 时间          0.01 秒


  10. 132  ;
  11. 133  run;
  12. 134
  13. 135  filename folder pipe 'dir F:\MyFold2\*.csv /b';
  14. 136
  15. 137  %macro import(name=);
  16. 138  data temp(drop=i);
  17. 139  infile  "F:\MyFold2\&name." dlm=',';
  18. 140  length file $ 100;
  19. 141  input date:yymmdd10. @;
  20. 142  file=scan("&name",1,'(');
  21. 143  do i=1 to 6;
  22. 144  input num@@;
  23. 145  if i=4 then output;
  24. 146  end;
  25. 147  proc append base=ex data=temp;
  26. 148  run;
  27. 149  %mend;
  28. 150
  29. 151  data _null_;
  30. 152  infile folder;
  31. 153  input char:$100.;
  32. 154  call execute(compress('%import('||'name='||char||')'));
  33. 155  run;

  34. NOTE: Infile FOLDER 是:
  35.       未命名的管道访问设备,
  36.       PROCESS=dir F:\MyFold2\*.csv /b,RECFM=V,
  37.       LRECL=256

  38. Stderr output:
  39. 磁盘空间不足。
  40. NOTE: 从 Infile FOLDER 中读取了 0 条记录。
  41. NOTE: “DATA 语句”所用时间(总处理时间):
  42.       实际时间          0.08 秒
  43.       CPU 时间          0.01 秒


  44. 156
  45. 157  proc sort data=ex out=ex1;
  46. 158  by date;
  47. 159

  48. NOTE: 输入数据集为空。
  49. NOTE: 数据集 WORK.EX1 有 0 个观测和 3 个变量。
  50. NOTE: “PROCEDURE SORT”所用时间(总处理时间):
  51.       实际时间          0.02 秒
  52.       CPU 时间          0.03 秒


  53. 160  proc transpose data=ex1 out=mynewdata(drop=_name_);
  54. ERROR: 您不能打开 WORK.MYNEWDATA.DATA 进行输出访问 (使用成员级的控制),因为 WORK.MYNEWDATA.DATA正被“您”使用
  55. 在资源环境“ViewTable Window”中使用。
  56. 161  by date;
  57. 162  id file;
  58. 163  var num;
  59. 164  run;

  60. NOTE: 由于出错,SAS 系统停止处理该步。
  61. NOTE: “PROCEDURE TRANSPOSE”所用时间(总处理时间):
  62.       实际时间          0.03 秒
  63.       CPU 时间          0.03 秒

  64. 165


  65. 166  proc corr data=mynewdata(drop=date) nomiss;
  66. 167  var _all_;
  67. WARNING: 数据集 WORK.MYNEWDATA 中找不到变量。
  68. 168  run;

  69. ERROR: 变量列表为空。
  70. NOTE: 由于出错,SAS 系统停止处理该步。
  71. NOTE: “PROCEDURE CORR”所用时间(总处理时间):
  72.       实际时间          0.01 秒
  73.       CPU 时间          0.01 秒
复制代码

使用道具

freetiger666 发表于 2013-1-15 10:47:42 |显示全部楼层 |坛友微信交流群
哪位大神指点一下啊?

使用道具

我也碰到这个问题了:
To work around this issue, do one of the following:
Pin the shortcut for the SAS executable to either the Start menu or the Taskbar. When you invoke SAS from a pinned location, you prevent the error message from appearing.
Or edit your SAS shortcut with the following command:
Right-click the shortcut for the SAS executable and select Properties.
In the sas.exe - Shortcut Properties dialog box, click the Shortcut tab and enter this command in the Target field:
C:\Windows\System32\cmd.exe /c "C:\Progra~1\SAS\SASFoundation\9.2\sas.exe -CONFIG C:\Progra~1\SAS\SASFoundation\9.2\nls\en\SASV9.CFG"
Click OK.

详见:http://support.sas.com/kb/41/863.html

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

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

GMT+8, 2024-3-29 21:59