我是SAS新手,尝试做下一个: 我有两个表(用户&评论)通过user_id连接。SAS检查是否为IN字符
我已经通过user_id合并了两者。 有两个变量,我想用:
- “日期”(审查的另存为格式MMDDYY10。)
- “精英”(一年一用户是精英,保存为字符)
精英具有不同的形式(示例):
- 空单元
- 2012,2015,2017
- 2012:2017年
如何检查,如果用户是精英,当他写的评论?
由于提前, 贝约
我是SAS新手,尝试做下一个: 我有两个表(用户&评论)通过user_id连接。SAS检查是否为IN字符
我已经通过user_id合并了两者。 有两个变量,我想用:
精英具有不同的形式(示例):
如何检查,如果用户是精英,当他写的评论?
由于提前, 贝约
这个占地的情况下在一年中不存在的elite
的文本,但包含在范围:
data test_cases;
input date yymmdd10. + 1 elite $32.;
format date yymmdd10.;
infile cards missover;
cards;
2012-01-01 2012,2015,2017
2012-01-01 2012:2017
2013-01-01 2012:2017
2012-01-01
2011-01-01 2012,2015,2017
2011-01-01 2012:2017
;
run;
data example;
set test_cases;
article_year = put(year(date),4.);
if index(elite,':') = 0 then elite_flag = index(elite,article_year);
else elite_flag = substr(elite,1,4) <= article_year <= substr(elite,6,9);
run;
谢谢!现在我懂了! – Pello
可以使用YEAR
函数从date
提取年份,然后用PUT
函数将其转换为字符,最后INDEX
功能来搜索elite
列表:
if index(elite,put(year(date),4.)) then ...
当索引函数在elite
变量中找到date
的年份时,条件将成立。
是否'2012:2017'意味着用户是精英从2012年的所有年份2017包含? – user667489