答案 0 :(得分:1)
可能这可以帮助你,我用php解决你的情况你可以使用自己的语言。如果有帮助请告诉我。
$numbers=array(-4136000,2973000,4136000);
$num_no_duplicate=array();
for($n=0;$n<count($numbers);$n++){
$current_num=$numbers[$n];
foreach ($numbers as $number) {
$temp_sum=$number+$numbers[$n];
if($temp_sum!=0 && $numbers[$n]>0){
$num_no_duplicate[]=$numbers[$n];
}
}
}
print_r(array_unique($num_no_duplicate));
答案 1 :(得分:0)
由于你谈到删除值和显示行我会假设你有3行的组。
data have;
group + 1;
do seq = 1 to 3;
input x @;
output;
end;
datalines;
10 20 -10
10 10 10
10 -10 20
20 10 10
20 10 -10
run;
具有两个do-while循环的数据步骤可以在每个组上运行。第一次“测量”该组的某些方面;在这种情况下,在大海捞针中寻找一根针,该针是在该组内的负面重复的一些值。
第二个do-while输出非针。
data want;
array _x[3] _temporary_; * the proverbial haystack;
* each group is a 'haystack';
do until (last.group);
set have;
by group;
_x[seq] = x; * add one straw to the haystack;
do _n_ = 1 to seq-1 while (needle = .);
if _x[_n_] = -x then needle = x; * check if the straw is actually the needle;
end;
end;
* process the group again via second set statement;
do until (last.group);
set have;
by group;
if missing(needle) or (x ne needle and x ne -needle) then OUTPUT;
end;
run;
更大的类似问题,一个具有任意数量项目并想要删除总和为零的最大项目组的组,有点复杂