sas中的垂直列求和
我有下面的结果,我需要补充。这似乎是一个简单的请求,但我已经花了几天时间试图找到解决这个问题的方法 数据包括:sas中的垂直列求和,sas,column-sum,Sas,Column Sum,我有下面的结果,我需要补充。这似乎是一个简单的请求,但我已经花了几天时间试图找到解决这个问题的方法 数据包括: Measure Jan_total Feb_total Startup 100 200 Switcher 300 500 需要数据: Measure Jan_total Feb_total Startup 100 200 Switcher 300 500 Total
Measure Jan_total Feb_total
Startup 100 200
Switcher 300 500
需要数据:
Measure Jan_total Feb_total
Startup 100 200
Switcher 300 500
Total 400 700
我想单独放置在各自的列下,请每列垂直总和的结果
有人能帮我找到此请求的解决方案吗?要在数据步骤代码中执行此操作,请执行以下操作:
data want;
set have end=end; * Var 'end' will be true when we get to the end of 'have'.;
jan_sum + jan_total; * These 'sum statements' accumulate the totals from each observation.;
feb_sum + feb_total;
output; * Output each of the original obbservations.;
if end then do; * When we reach the end of the input...;
measure = 'Total'; * ...update the value in Measure...;
jan_total = jan_sum; * ...move the accumulated totals to the original vars...;
feb_total = feb_sum;
output; * ...and output them in an additional observation.
end;
drop jan_sum feb_sum; * Get rid of the accumulator variables (this statement can go anywhere in the step).;
run;
你可以用很多其他的方法。假设您实际拥有所有月份的列,您可以重新编写数据步骤代码以使用数组,或者您可以使用PROC SUMMARY或PROC SQL计算总计,并使用更短的数据步骤将结果总计添加回来,等等。要在数据步骤代码中执行此操作,您可以执行以下操作:
data want;
set have end=end; * Var 'end' will be true when we get to the end of 'have'.;
jan_sum + jan_total; * These 'sum statements' accumulate the totals from each observation.;
feb_sum + feb_total;
output; * Output each of the original obbservations.;
if end then do; * When we reach the end of the input...;
measure = 'Total'; * ...update the value in Measure...;
jan_total = jan_sum; * ...move the accumulated totals to the original vars...;
feb_total = feb_sum;
output; * ...and output them in an additional observation.
end;
drop jan_sum feb_sum; * Get rid of the accumulator variables (this statement can go anywhere in the step).;
run;
proc means noprint
data = have;
output out= want
class measure;
var Jan_total Feb_total;
run;
你可以用很多其他的方法。假设您实际拥有所有月份的列,您可以重新编写数据步骤代码以使用数组,或者您可以使用PROC SUMMARY或PROC SQL计算总计,并使用更短的数据步骤将结果总计添加回来,等等。这取决于这是用于显示还是用于数据集。在数据集中有一个总数通常是没有意义的,它只是用于报告
proc means noprint
data = have;
output out= want
class measure;
var Jan_total Feb_total;
run;
PROC PRINT有一个SUM语句,用于将总计添加到报告末尾。PROC TABLATE还提供了另一种类似这样的报告机制
结果:
这取决于它是用于显示还是用于数据集。在数据集中有一个总数通常是没有意义的,它只是用于报告 PROC PRINT有一个SUM语句,用于将总计添加到报告末尾。PROC TABLATE还提供了另一种类似这样的报告机制 结果:
你好,Sahil,欢迎来到StackOverflow。考虑解释你的问题的背景。例如,说出它的上下文(HTMLCSS、React、Android等),这样用户就可以为您提供有意义的答案。另外,为了更好地理解这个问题,请添加一些您正在进行的工作的代码。这是否回答了您的问题?如果你得到了完美的答案,请考虑将它标记为接受。您可以按答案左上角的复选标记来完成此操作。投票也是一种选择。我之所以提到这一点,是因为你是stackoverflow的新手,而且因为你在评论中表达了你的欣赏,你可以通过给回答者评分来给他荣誉。不要觉得这样做有压力,因为你总是可以等待更好的答案,或者可能它不够让你满意。嗨,Sahil,欢迎来到StackOverflow。考虑解释你的问题的背景。例如,说出它的上下文(HTMLCSS、React、Android等),这样用户就可以为您提供有意义的答案。另外,为了更好地理解这个问题,请添加一些您正在进行的工作的代码。这是否回答了您的问题?如果你得到了完美的答案,请考虑将它标记为接受。您可以按答案左上角的复选标记来完成此操作。投票也是一种选择。我之所以提到这一点,是因为你是stackoverflow的新手,而且因为你在评论中表达了你的欣赏,你可以通过给回答者评分来给他荣誉。不要觉得这样做有压力,因为你总是可以等待更好的答案,或者可能这还不够让你满意。非常感谢你的解释和详细的代码。它给了我所需要的最终输出。感谢您。作为问题的作者,您可以选择将答案标记为您选择的答案,为答案的作者再加15分。@Chris,您能帮我一点忙吗?如果我有相同的数据结构,但我需要计算一系列变量的总和,就像上面的情况一样,会怎么样?在解决方案中,您提到了单个变量名称,如jan_total、feb_total等。我有14个月的此类运行数据,需要对这些数据进行汇总,并且需要在每个类别下面显示总计。有什么想法吗?非常感谢您的解释和详细的代码。它给了我所需要的最终输出。感谢您。作为问题的作者,您可以选择将答案标记为您选择的答案,为答案的作者再加15分。@Chris,您能帮我一点忙吗?如果我有相同的数据结构,但我需要计算一系列变量的总和,就像上面的情况一样,会怎么样?在解决方案中,您提到了单个变量名称,如jan_total、feb_total等。我有14个月的此类运行数据,需要对这些数据进行汇总,并且需要在每个类别下面显示总计。有什么想法吗?