SAS:复制行并遍历列

Posted

技术标签:

【中文标题】SAS:复制行并遍历列【英文标题】:SAS: replicate rows and iterate over columns 【发布时间】:2022-01-15 00:05:38 【问题描述】:

我想复制和修改表中的特定行。

之前:

xyz_id | letter | Col_1 | Col_2|
1 | Z | V1 | W1 |
2 | Z | V2 | W2 |
3 | Z | V3 | W3 |

之后:

xyz_id | letter | Col_1 | Col_2|
1 | A | V1.1 | W1.1 |
1 | B | V1.1 | W1.1 |
1 | C | V1.1 | W1.1 |
2 | A | V2.1 | W2.1 |
2 | B | V2.1 | W2.1 |
2 | C | V2.1 | W2.1 |
3 | A | V3.1 | W3.1 |
3 | B | V3.1 | W3.1 |
3 | C | V3.1 | W3.1 |

我已经准备了以下代码:

data test2;
        set test;
        
        array letters 8 $8 _temporary_ ('A', 'B', 'C');
        array weights 8  _temporary_ (1,2,3);
        array nvars 2 Col_1 Col_2;

        do i = 1 to 8;
            letter = letters(i);

            do j=1 to 2;
                nvarj = nvarj * weights(i);
            end;

            output;
        end;
          drop i;
run;

但它不起作用。有什么建议吗?

【问题讨论】:

【参考方案1】:

您在j 循环中引用了nvar 数组,但该数组称为nvars

Col_1Col_2 是字符(例如“V1”),因此您不能将它们乘以数字并期望得到有效结果。

您的 lettersweights 数组没有为元素数量定义足够的值(3 对 8)。

【讨论】:

nvar vs nvars...这是个问题;/非常感谢!

以上是关于SAS:复制行并遍历列的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:从一个表中复制新添加的行并自动插入到另一个表中

SQLAlchemy:循环遍历模型对象以复制它们时的KeyError

遍历 pandas 行并根据其他列中的值设置列值

如何复制几行并插入复制的单元格-宏代码

使用 Python Selenium 遍历表行并打印列文本

如何遍历数据框的行并检查列行中的值是不是为 NaN