标签: sas

SAS中的正则表达式匹配

我的观察结果有1美元符号($),观察结果有2美元符号($).我想为每种观察类型分配不同的值.它应该看起来像这样:

"200美元300美元"被分配1."200美元"被分配2.

我已经尝试过整天玩Perl通配符,但没有运气.

谢谢.

regex perl sas

2
推荐指数
1
解决办法
253
查看次数

sas中的等效date_part函数

我有一个sql语句来提取日期对象.它在Postgres中运行良好,但不是sas.零件查询是这样的:

(case when date_part('month',run_date)::integer < 10 
     THEN '0'||
          date_part('month',run_date)::varchar(1)||
          date_part('year',run_date)::varchar(4)
     else  date_part('month',run_date)::varchar(2)||date_part('year',run_date)::varchar(4)
     end) as our_date
Run Code Online (Sandbox Code Playgroud)

在sas中,没有date_part函数.我试过datepart函数.但它没有执行相同的功能.我怎么能在sas中运行sql语句?谢谢.

sql sas

2
推荐指数
1
解决办法
2万
查看次数

合并SAS中的所有记录

我有两个数据集.Table1只有一个记录.Table2有很多记录.我想组合这些,以便将变量Table1添加到每个记录中Table2.

我知道这可以这样做proc sql:

proc sql;
 create table3 as
  select *
  from table1, table2;
quit;
Run Code Online (Sandbox Code Playgroud)

我想要相同的结果,但使用数据步骤.这样做的最佳(优雅,高效)方法是什么?

sas

2
推荐指数
1
解决办法
331
查看次数

循环有条件地导出表SAS(大量变量)

因此,我试图根据特定的变量分组来分解大型数据集(70,000个具有1,790个变量的数据集).Excel或CSV是导出的理想格式,但对变量号(260或其他)有限制.有什么想法我怎么能在SAS(或其他R/SQL)这样做?

我知道宏工作,我以前用过它.错误消息读取已达到变量的限制.

sql excel r sas

2
推荐指数
1
解决办法
1662
查看次数

将文本文件导入SAS

我正在使用以下代码将文本文件导入SAS:

proc import datafile="C:\Users\Desktop\data.txt" out=Indivs dbms=dlm replace;
 delimiter=';';
   getnames=yes;
run;
Run Code Online (Sandbox Code Playgroud)

但是,我在日志中收到错误消息,并且某些字段填充了".".代替真实数据,我不知道是什么问题.

错误消息是:

Invalid data for DIPL in line 26 75-76.
Invalid data for DIPL in line 28 75-76.
Invalid data for DIPL in line 31 75-76.
Invalid data for DIPL in line 34 75-76.
Run Code Online (Sandbox Code Playgroud)

这里有一个数据样本http://m.uploadedit.com/b029/1392916373370.txt

sas

2
推荐指数
1
解决办法
3万
查看次数

SAS Do循环:在循环内使用循环变量来创建滞后变量

我想创建包含大量滞后的给定变量的滞后值的变量.我怎么能这样做?我尝试以下方法:

data out; 
set in;
do i = 1 to 50;
%let j = i;
lag_&j = Lag&j.(x);
end;
run;
Run Code Online (Sandbox Code Playgroud)

如何将循环变量i放入宏变量j或如何直接使用它来创建适当命名的变量和Lag函数?

sas sas-macro

2
推荐指数
1
解决办法
877
查看次数

SAS如何在同一数据集中获取汇总计数

我有一个看起来像这样的数据集:

id,colour
12,blue
12,green
12,yellow
13,blue
14,black
15,blue
15,green
Run Code Online (Sandbox Code Playgroud)

在同一个数据集中我想拥有每个id的计数最终我要做的就是消除有多个id的id

在SQL中,我将使用SUM OVER()窗口函数,或者使用每个id的计数自行连接表

什么是在SAS中做到这一点的最好方法?

id,colour,num
12,blue,3
12,green,3
12,yellow,3
13,blue,1
14,black,1
15,blue,2
15,green,2
Run Code Online (Sandbox Code Playgroud)

在排除重复的id后,我的最终结果将最终看起来像这样:

id,colour
13,blue
14,black
Run Code Online (Sandbox Code Playgroud)

summary sas count

2
推荐指数
1
解决办法
114
查看次数

如何在SAS中找到子串的最后位置(索引函数的对位)

字符串'6017> 6025> 6023> 6022> 6025> 6032'.我们怎么知道'6025'的最后位置?index函数只返回第一次出现的字符串.很难使用反向功能,因为它找不到一个字符.有什么好主意吗?

indexing function sas

2
推荐指数
1
解决办法
1万
查看次数

如何查看proc中可用的输出选项?

除了使用或选项生成的输出数据集之外,运行复杂的过程(例如PROC REG或)PROC GLM,通常会在输出窗口中生成描述回归结果的表.OUTOUTPUT

如何将这些表输出到SAS数据集?

例如,给定PROC REG中的第一个SAS示例(在文档页面上),如何输出拟合优度统计量(例如R-Squared)?

sas

2
推荐指数
1
解决办法
286
查看次数

SAS中的合并工作(IN =)

我有两个datasetdata1和data2

data data1; 
input sn id $;
datalines;
1 a
2 a
3 a
;
run;

data data2; 
input id $ sales x $;
datalines;
a 10 x
a 20 y 
a 30 z
a 40 q
;
run;
Run Code Online (Sandbox Code Playgroud)

我从下面的代码合并它们:

data join;
merge data1(in=a) data2(in=b);
by id;
if a and b;
run;
Run Code Online (Sandbox Code Playgroud)

结果:(我期待的不是内部联接结果)

1   a   10  x
2   a   20  y
2   a   30  z
2   a   40  w
Run Code Online (Sandbox Code Playgroud)

proc sql内部联接的结果。

proc sql;
select data1.id,sn,sales,x from data2 …
Run Code Online (Sandbox Code Playgroud)

sql sas

2
推荐指数
1
解决办法
328
查看次数

标签 统计

sas ×10

sql ×3

count ×1

excel ×1

function ×1

indexing ×1

perl ×1

r ×1

regex ×1

sas-macro ×1

summary ×1