我的观察结果有1美元符号($),观察结果有2美元符号($).我想为每种观察类型分配不同的值.它应该看起来像这样:
"200美元300美元"被分配1."200美元"被分配2.
我已经尝试过整天玩Perl通配符,但没有运气.
谢谢.
我有一个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语句?谢谢.
我有两个数据集.Table1
只有一个记录.Table2
有很多记录.我想组合这些,以便将变量Table1
添加到每个记录中Table2
.
我知道这可以这样做proc sql
:
proc sql;
create table3 as
select *
from table1, table2;
quit;
Run Code Online (Sandbox Code Playgroud)
我想要相同的结果,但使用数据步骤.这样做的最佳(优雅,高效)方法是什么?
因此,我试图根据特定的变量分组来分解大型数据集(70,000个具有1,790个变量的数据集).Excel或CSV是导出的理想格式,但对变量号(260或其他)有限制.有什么想法我怎么能在SAS(或其他R/SQL)这样做?
我知道宏工作,我以前用过它.错误消息读取已达到变量的限制.
我正在使用以下代码将文本文件导入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)
我想创建包含大量滞后的给定变量的滞后值的变量.我怎么能这样做?我尝试以下方法:
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函数?
我有一个看起来像这样的数据集:
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) 字符串'6017> 6025> 6023> 6022> 6025> 6032'.我们怎么知道'6025'的最后位置?index函数只返回第一次出现的字符串.很难使用反向功能,因为它找不到一个字符.有什么好主意吗?
除了使用或选项生成的输出数据集之外,运行复杂的过程(例如PROC REG
或)PROC GLM
,通常会在输出窗口中生成描述回归结果的表.OUT
OUTPUT
如何将这些表输出到SAS数据集?
例如,给定PROC REG中的第一个SAS示例(在文档页面上),如何输出拟合优度统计量(例如R-Squared)?
我有两个dataset
data1和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)