簡體   English   中英

SAS檢查年份是否為IN字符

[英]SAS check if year is IN character

我是SAS的新手,並嘗試做下一個:我有兩個通過user_id連接的表(用戶和評論)。

我已經通過user_id合並了兩者。 我要使用兩個變量:

  1. “日期”(評論的日期。 另存MMDDYY10格式
  2. “精英”(用戶精銳的年份,另存為字符

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

  • 空單元格
  • 2012、2015、2017
  • 2012:2017

在撰寫評論時,如何檢查用戶是否為精英?

在此先感謝Peyo

您可以使用YEAR函數從date提取年份,然后使用PUT函數將其轉換為字符,最后使用INDEX函數搜索elite列表:

if index(elite,put(year(date),4.)) then ...

當索引函數在elite變量中找到date年份時,該條件為true。

這涵蓋了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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM