改进格式化,我有点卡在我无法提取字符串的最后4个字符的地方。当我写道: -
indikan=substr(Indikation,length(Indikation)-3,4);
它给出了无效的论据 怎么做?
答案 0 :(得分:5)
此代码有效:
data temp;
indikation = "Idontknow";
run;
data temp;
set temp;
indikan = substrn(indikation,max(1,length(indikation)-3),4);
run;
您能为变量提供更多上下文吗?如果indikation的长度为3或小于我可以看到此错误,或者如果它是数字,则可能会导致问题,因为它正确对齐数字http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000245907.htm)。
答案 1 :(得分:2)
如果在某些情况下可能不到四个字符,我建议添加max
:
indikan = substrn(indikation,max(1,length(indikation)-3),4);
我还添加了substrn
,因为Rob建议它更好地处理一个不够长的字符串。
答案 2 :(得分:1)
或者可以使用反向功能两次,如下所示:
data _null_;
my_string = "Fri Apr 22 13:52:55 +0000 2016";
_day = substr(my_string, 9, 2);
_month = lowcase(substr(my_string, 5, 3));
* Check the _year out;
_year = reverse(substr(reverse(trim(my_string)), 1, 4));
created_at = input(compress(_day || _month || _year), date9.);
put my_string=;
put created_at=weekdatx29.;
run;
答案 3 :(得分:0)
尾随空白可能导致错误的结果: 所以,在你执行substr之前,去掉/修剪你的字符串:
indikan=substr(strip(Indikation),length(strip(Indikation))-3);
必须给你最后4个字符
答案 4 :(得分:0)
或者您可以尝试这种方法,虽然最初不太直观,但是稳定,更短,使用更少的功能,并使用数字和文本值:
indikan = prxchange("s/.*(.{4}$)/$1/",1,indikation);
答案 5 :(得分:-1)
<table class = "table table-hover" *ngIf="videos"> //<<<===here
<thead>
<th>ID</th>
<th>Title</th>
<th>Descreption</th>
</thead>
<tbody>
<tr *ngFor = "let v of videos">
<td>{{v.id}}</td>
<td>{{v.title}}</td>
<td>{{v.desc}}</td>
</tr>
</tbody>
</table>
输出: