我在SAS中有一个表,其中一列中存储了日期(例如"2005/10")。如何将其转换为SAS数据格式?
在许多其他尝试中,我尝试了以下代码:
数据测试;
format date YYMMS.;
date = input(ObservationMonth, YYMMS.);
put date=date9.;
run;
我是R用户,也是SAS初学者,试图将csv文件读入SAS。我面临的问题是一个名为" time“的列,其中包含"hh:mm”格式的时间数据,例如"12:23 PM“。在R中,它和as.POSIXct(df$TIME, format = "%I:%M %p")一样简单,我的时间被立即转换成时间值(带有时区和今天的日期,可以删除)。
这就是我试图在SAS中实现这一点的方法:
/* firstly `rename` "TIME" to "DAY_HOUR" */
data mid.prac1;
set mid.prac1;
ren
我正在尝试导入它,这样一旦它在SAS表中,格式就是date9 (例如01MAY2021)。下面是我尝试过的:
Data Test;
infile "\\file.csv"
delimiter="," missover firstobs=2 dsd lrecl=32767;
informat Date ddmmyyyy.;
format Name $100.;
format Location $100.;
format Date date9.;
format Type $10.;
input Name $
Location $
我有一个使用proc在SAS中运行的SQL代码。
proc sql;
select col_A,col_B,put(date(),yymmdd10.) as col_C
from table_P;
create table_Q as
(select * from table_P);
quit;
col_C是今天的日期,并以Varchar2格式存储。我希望它能以日期格式存储。我该怎么做?我希望日期条目看起来像'2022-05-04‘。即使日期的格式发生了变化,我如何才能从Varchar进入日期数据类型呢?
我正试图将一个角色转换成sas中的一个约会,它让我疯狂地认为它不起作用。日期目前为字符格式,如下所示
200609
我想在proc中将它转换成类似的日期结构,但就是无法让它工作。我使用以下代码:
input(date,anydtdtm.) as Perf_Date format = date9.,
有人能告诉我哪里出了问题吗?
我正在尝试编写一个SAS脚本,它将简单地读取一个SAS .sas7bdat数据文件并以文本格式输出它。我希望日期以YYYYMMDD格式输出。我不知道日期栏的名字是什么。我的脚本目前是:
libname tmplib '~/testdatadir/';
OPTIONS MISSING='00'x;
data tmpdata;
set tmplib.testdatafile;
array flds{*} _NUMERIC_;
do i=1 to dim(flds);
if missing(flds(i)) then flds(i)=.;
end;
array c
我有一个SAS代码,我需要转换成R。
我的SAS代码是这样的-
proc sql;
create table data as
select a.*,b.qty from Sales as a inner join Units as b
on a.id=b.id and put(a.date,yymmn6.)=put(c.date,yymmn6.)
quit;
我知道这个词(a.date,yymmn6.)将日期转换为SAS日期值。但是,在这个函数之后,a.date变成了什么呢?如果date=01jan2012,put(a.date,yymmn6.)使其成为表示201201或20
我想知道,如果SAS是通过数据步骤中的输入语句,只读取日期变量,那么似乎有必要在每个informat名称之前写一个冒号,而如果变量列表以另一种类型的变量(例如字符变量)开头,则在信息前不需要冒号。为了说明我的问题,有两个小程序(见下文)。第一个方法生成无效的日期数据(只要我在mmddyy10之前没有写冒号,以获得输入日期:mmddyy10 10;),而第二个不需要。奇怪,不是吗?这可能有一些解释,但尽管搜索了SAS支持文档和论坛,我还是无法发现它可能是什么。欢迎任何帮助!不管怎么说,如果我早一点就明白了,我就省下了几个小时的时间来解决这个问题。
* program #1;
DATA _NULL
作为SAS的初学者,我很快就遇到了日期格式方面的问题。
我有一个数据集,其中包含具有三种日期类型的事务: BUSDATE、SPOTDATE、SPOTDATE。每个事务在两行上表示,我想要来自行1的BUSDATE和SPOTDATE,但来自行2的到期时间。
在原始集合中,日期采用YYYY-MM-DD格式。
DATA masterdata;
SET sourcedata(rename(BUSDATE=BUSDATE2 SPOTDATE=SPOTDATE2 MATURITY=MATURITY2));
BUSDATE=BUSDATE2;
SPOTDATE=SPOTDATE2;
IF TRANS_TY