由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 再问个问题,如何从dataset里删除一个data pattern?
相关主题
急!一个简单的SAS问题,请大家帮帮解释一下!多谢!a SAS question for best solution
请教sas code问题sas question
请教一个 SAS macro菜鸟问题 (R & SAS)
[合集] sas里面怎么能让A2排在A10前面请教一个问题包子答谢:An I/O error has occurred on file abc.DATA
有没有SAS最新的机经[提问]怎样提取SAS Dateset的observation number?
[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?nodupkey 删除的observations怎么查看?
请教一sas programmm[提问]怎样sort这个dataset?
请教一sas code如何判断一个dataset是不是空的?
相关话题的讨论汇总
话题: match话题: pattern话题: row话题: data话题: nobs
进入Statistics版参与讨论
1 (共1页)
h******e
发帖数: 1791
1
比如,一个变量string的值为:
1
2
3
_
1
2
3
我只想删除
_
1
2
3
不想删除
1
2
3
有没有办法?
w*****m
发帖数: 414
2
那得看其他信息是啥样的?LZ得多给点数据的例子。
S******y
发帖数: 1123
3
use Python
R*********i
发帖数: 7643
4
Retain "_" until you see another "1"? Assume the desired sequence of strings
always start with "1", you can delete those with retained "_" before "1".
h******e
发帖数: 1791
5
不会。

【在 S******y 的大作中提到】
: use Python
h******e
发帖数: 1791
6
我想了个主意,用lag function把column pattern变row pattern。

strings

【在 R*********i 的大作中提到】
: Retain "_" until you see another "1"? Assume the desired sequence of strings
: always start with "1", you can delete those with retained "_" before "1".

q**j
发帖数: 10612
7
出现这种问题,一般都是程序从开头就没设计好。

【在 h******e 的大作中提到】
: 我想了个主意,用lag function把column pattern变row pattern。
:
: strings

h******e
发帖数: 1791
8
多谢了,一下提醒我了,只要把ps放大就不会有这个问题了。

【在 q**j 的大作中提到】
: 出现这种问题,一般都是程序从开头就没设计好。
A*******s
发帖数: 3942
9
my idea is:
go through the data set one row by one row{
1) output current row if it is not matched
2) if the current row (and the previous rows) seem to match (part of) the
pattern, then stop outputting.
3) if the current row doesn't match but the previous do, go back to output
the previous and the current rows.
}
Codes:
data test;
obs=_N_;
input char $3.;
cards;
2
3
4
1
2
5
8
_
1
2
3
3
5
3
+
4
3
1
2
1
f
g
2
_
1
2
3
1
f
g
e
d
u
_
1
2
3
h
;
%let pattern=_123;
data test2;
retain n_match 0;
drop n_match;
if 0 then set test nobs=nobs;
do i=1 to nobs;
set test point=i;
if char = substr(strip("&pattern"),n_match+1, 1) then do;
n_match=n_match+1;
if n_match=%length(&pattern) then n_match=0;
end;
else do;
do j=i-n_match to i;
set test point=j;
output;
end;
n_match=0;
end;
end;
stop;
run;

【在 h******e 的大作中提到】
: 比如,一个变量string的值为:
: 1
: 2
: 3
: _
: 1
: 2
: 3
: 我只想删除
: _

B******5
发帖数: 4676
10
这用Perl或者Python的regular expression不是可以很容易搞定的?
1 (共1页)
进入Statistics版参与讨论
相关主题
如何判断一个dataset是不是空的?有没有SAS最新的机经
one little SAS question[合集] SAS里如何实现LOCF(LAST OBS CARRIED FORWARD)?
question about SAS BASE 123 No.64?请教一sas programmm
a simple question. Thank you in advance请教一sas code
急!一个简单的SAS问题,请大家帮帮解释一下!多谢!a SAS question for best solution
请教sas code问题sas question
请教一个 SAS macro菜鸟问题 (R & SAS)
[合集] sas里面怎么能让A2排在A10前面请教一个问题包子答谢:An I/O error has occurred on file abc.DATA
相关话题的讨论汇总
话题: match话题: pattern话题: row话题: data话题: nobs