-1

我想对基于特定标识符的特定列的一组观察值求和。例如,假设我有如下数据

A 4 5 6
B 3 3 2
A 3 4 2
C 3 2 0
B 3 7 3
B 2 4 1

假设我想通过第 1 列中的标识符对所有值求和,因此我通过我选择的特定列(2、3 或 4)对 A、B 和 C 进行总计。然后在一个单独的数据集中只输出超出特定标准的 A、B 或 C。

例如,我想要第 4 列的总和(基于第 1 列中的标识符)高于 1 的值,我的输出数据集应返回 A = 8、B = 6,显然 C 为零。

我对Proc SQLdata步骤持开放态度,实际上了解这两种方法会很有用。

4

3 回答 3

1

这应该可以解决问题,在 from 之后为您的条件添加一个 where 语句。

proc sql ;
  create table output as
  select Column1, sum(column2) as ColSum2, sum(column3) as ColSum3,
         sum(column4) as ColSum4
  from your_data_table_here
  group by 1
  order by 1
  ;
quit ;
于 2014-08-26T23:11:21.013 回答
1

您可以使用proc sql对列进行分组和求和。假设您有识别列col1, col2, col3和值列的数据value

proc sql;
        create table SUMS as
        select COL1, COL2, COL3, sum(VALUE) as VALUE_SUM
        from YOUR_TABLE
        group by COL1, COL2, COL3;
quit;

对于你们中的 Python 人来说,这类似于 Pandas 中的df.groupby(['col1', 'col2', 'col3'])['value'].sum().rename('value_sum').reset_index().

于 2021-06-24T20:36:27.780 回答
0

可以使用sql-groupby-sum聚合函数

于 2014-08-18T15:05:32.190 回答