gpt4 book ai didi

sas - 复制 SAS 中的前一列值

转载 作者:行者123 更新时间:2023-12-01 12:34:21 26 4
gpt4 key购买 nike

如果有缺失值,我试图将值从上一列复制到当前列,但我编写的代码有问题。

data X; 
input A B C D E;
cards;
1 . . . 2
2 2 3 . .
3 3 4 5 6
4 4 4 2 .
. . 6 . .
;
run;

程序

data Y; 
set x;
array arr(5) a--e;

array brr(4) b--e;

do j=1 to dim(arr);
do i =2 to dim(brr);

if brr(i)=. then brr(i)=arr(j);
end;
end;
drop i j;
run;

但是我得到的输出是

1 . 1 1 2
2 2 3 2 2
3 3 4 5 6
4 4 4 2 4
. . 6 6 6

这是错误的!我想要的输出是这样的:

1 1 1 1 2
2 2 3 3 3
3 3 4 5 6
4 4 4 2 4
. . 6 6 6

代码有什么问题?

最佳答案

你想要 4 4 4 2 2 而不是 4 4 4 2 4 吗?

你只需要一个循环:

试试这段代码:

data Y; 
set x;
array arr(5) a--e;

do i=2 to dim(arr);
if arr(i)=. then arr(i)=arr(i-1);
end;

drop i;
run;

此外,不要忘记思考这段代码中发生了什么!您可以尝试检查每一行和每个 i:

  • arr(i) 值是多少?
  • arr(i-1) 的值是多少?
  • 结果是预期的吗? (说服自己问题已经解决 :) )

关于sas - 复制 SAS 中的前一列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31027807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com