首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查年份是否为字符

检查年份是否为字符
EN

Stack Overflow用户
提问于 2017-10-19 12:23:23
回答 2查看 62关注 0票数 0

我对SAS很陌生,并试图做下一件事:我有两个表(用户和评论)通过user_id连接。

我通过user_id合并了这两家公司。我想使用两个变量:

  1. (审查的)日期。保存为格式MMDDYY10.)
  2. “精英”(用户是精英的年份,保存为字符)

精英有不同的形式(例子):

  • 空细胞
  • 2012,201,2017
  • 2012年:2017年

当用户写评论时,我如何检查他是否是精英呢?

提前谢谢你,佩约

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-19 12:52:57

这涵盖了在elite文本中不存在年份但包含在范围内的情况:

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2017-10-19 12:45:31

您可以使用YEAR函数从date提取年份,然后使用PUT函数将其转换为字符,最后使用INDEX函数搜索elite列表:

代码语言:javascript
复制
if index(elite,put(year(date),4.)) then ...

当索引函数在date变量中创建elite年时,条件将为真。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46829783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档