楼主: zsm4444
2745 15

[问答] 如何创建各个年份的累计数值!!!大神求教!! [推广有奖]

  • 0关注
  • 0粉丝

大专生

30%

还不是VIP/贵宾

-

威望
0
论坛币
69 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1258 点
帖子
29
精华
0
在线时间
35 小时
注册时间
2011-2-6
最后登录
2022-4-20

楼主
zsm4444 发表于 2013-9-28 05:51:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据如下:
01Jan89   40.27   151.23  50.44
01Feb89   49.29  144.29  44.50
01Mar89   91.50   72.75  40.67
01Apr89   93.71   49.63  36.04
01May89   16.64   33.22  39.79
01Jun89   34.15   22.04  26.47
01Jul89  172.48  118.30  44.86
01Aug89   79.44   18.45  29.28
01Sep89   69.02   23.72  33.53
01Oct89   29.00   27.62  30.07
01Nov89   82.75   65.40  29.99
01Dec89   61.50   99.62  36.88
01Jan90  139.13  122.43  77.90
01Feb90   92.83  105.94  26.58
01Mar90  104.50   69.06  22.75
01Apr90  137.95   44.77  22.00
01May90  120.63   39.09  22.87
01Jun90  145.17  125.01  63.39
01Jul90   58.56   16.45  27.28
01Aug90   78.68   17.22  23.17
01Sep90   21.79   18.78  32.51
01Oct90  195.02   81.05  59.97
01Nov90   71.52   58.76  38.19
01Dec90   72.85  106.69  33.48
01Jan91  123.68  157.71  36.02
01Feb91  111.39  109.77  99.08
01Mar91   70.92   90.58  26.98
01Apr91  118.07   62.41  30.51
01May91   57.80   53.98  33.63
01Jun91   69.11   27.24  24.35
01Jul91  269.06   19.02  26.13
01Aug91   56.79   18.53  23.24
01Sep91   21.17   23.13  21.46
01Oct91   50.00   80.78  28.44
01Nov91   52.57   80.78  28.44
01Dec91  141.12  117.84  42.99
01Jan92   39.39  141.13  28.66
01Feb92   57.86  107.21  28.51
01Mar92   53.69   74.86  21.84
01Apr92  151.33   71.36  82.99
01May92   47.50   24.69  28.22
01Jun92   45.32   23.06  18.69
01Jul92   60.98   16.21  32.52
01Aug92   45.25   19.60  30.20
01Sep92   44.21   19.60  27.59
01Oct92   43.20   27.40  26.03
01Nov92   18.51   60.17  34.29
01Dec92   62.96  134.99  38.11


第一列为date,第二列为Telephone_cost,第三列为Fuel_cost,第四列为Electricity_cost;

如何运用以上数据作出以下的表格:

year   Telephone_Cumulative  Fuel_Cumulative  Electricity_Cumulative  Totalcost_Cumulative
1989        819.75                       826.27                   442.52                          2088.54
1990        1238.63                    805.25                    450.09                           2493.97
1991         1141.68                    841.77                    421.27                          2404.72
1992        670.2                        720.28                     397.65                          1788.13

求大神赐教啊啊啊!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:累计数 Electricity cumulative telephone Electric 如何

沙发
bobguy 发表于 2013-9-28 06:38:17
A simple sql can do it as showed below.

data a;
input date ANYDTDTE. Telephone  Fuel  Electricity  ;
cards;
01Jan89   40.27   151.23  50.44
01Feb89   49.29  144.29  44.50
01Mar89   91.50   72.75  40.67
01Apr89   93.71   49.63  36.04
01May89   16.64   33.22  39.79
01Jun89   34.15   22.04  26.47
01Jul89  172.48  118.30  44.86
01Aug89   79.44   18.45  29.28
01Sep89   69.02   23.72  33.53
01Oct89   29.00   27.62  30.07
01Nov89   82.75   65.40  29.99
01Dec89   61.50   99.62  36.88
01Jan90  139.13  122.43  77.90
01Feb90   92.83  105.94  26.58
01Mar90  104.50   69.06  22.75
01Apr90  137.95   44.77  22.00
01May90  120.63   39.09  22.87
01Jun90  145.17  125.01  63.39
01Jul90   58.56   16.45  27.28
01Aug90   78.68   17.22  23.17
01Sep90   21.79   18.78  32.51
01Oct90  195.02   81.05  59.97
01Nov90   71.52   58.76  38.19
01Dec90   72.85  106.69  33.48
01Jan91  123.68  157.71  36.02
01Feb91  111.39  109.77  99.08
01Mar91   70.92   90.58  26.98
01Apr91  118.07   62.41  30.51
01May91   57.80   53.98  33.63
01Jun91   69.11   27.24  24.35
01Jul91  269.06   19.02  26.13
01Aug91   56.79   18.53  23.24
01Sep91   21.17   23.13  21.46
01Oct91   50.00   80.78  28.44
01Nov91   52.57   80.78  28.44
01Dec91  141.12  117.84  42.99
01Jan92   39.39  141.13  28.66
01Feb92   57.86  107.21  28.51
01Mar92   53.69   74.86  21.84
01Apr92  151.33   71.36  82.99
01May92   47.50   24.69  28.22
01Jun92   45.32   23.06  18.69
01Jul92   60.98   16.21  32.52
01Aug92   45.25   19.60  30.20
01Sep92   44.21   19.60  27.59
01Oct92   43.20   27.40  26.03
01Nov92   18.51   60.17  34.29
01Dec92   62.96  134.99  38.11
;

proc sql;
  select year(date) as year,
  sum(Telephone) as Telephone_Cumulative,
  sum(Fuel) as Fuel_Cumulative,
  sum(Electricity) as Electricity_Cumulative,
calculated Telephone_Cumulative + calculated Fuel_Cumulative + calculated Electricity_Cumulative
as Totalcost_Cumulative
  from a
  group by year
  order by year
  ;
  quit;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zsm4444 + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
zsm4444 发表于 2013-9-28 06:49:33
bobguy 发表于 2013-9-28 06:38
A simple sql can do it as showed below.

data a;
万分感谢啊,大神!!!但是,我们老师貌似还没有教我们用sql语句,能不能有更加简单的方法来输出这个结果呢?谢谢!

板凳
beijingdizheng 发表于 2013-9-28 08:53:09
data have;
input date ANYDTDTE. Telephone  Fuel  Electricity;
year=year(date);
Totalcost_Cumulative=Telephone + Fuel + Electricity;

cards;
01Jan89   40.27   151.23  50.44
01Feb89   49.29  144.29  44.50
01Mar89   91.50   72.75  40.67
01Apr89   93.71   49.63  36.04
01May89   16.64   33.22  39.79
01Jun89   34.15   22.04  26.47
01Jul89  172.48  118.30  44.86
01Aug89   79.44   18.45  29.28
01Sep89   69.02   23.72  33.53
01Oct89   29.00   27.62  30.07
01Nov89   82.75   65.40  29.99
01Dec89   61.50   99.62  36.88
01Jan90  139.13  122.43  77.90
01Feb90   92.83  105.94  26.58
01Mar90  104.50   69.06  22.75
01Apr90  137.95   44.77  22.00
01May90  120.63   39.09  22.87
01Jun90  145.17  125.01  63.39
01Jul90   58.56   16.45  27.28
01Aug90   78.68   17.22  23.17
01Sep90   21.79   18.78  32.51
01Oct90  195.02   81.05  59.97
01Nov90   71.52   58.76  38.19
01Dec90   72.85  106.69  33.48
01Jan91  123.68  157.71  36.02
01Feb91  111.39  109.77  99.08
01Mar91   70.92   90.58  26.98
01Apr91  118.07   62.41  30.51
01May91   57.80   53.98  33.63
01Jun91   69.11   27.24  24.35
01Jul91  269.06   19.02  26.13
01Aug91   56.79   18.53  23.24
01Sep91   21.17   23.13  21.46
01Oct91   50.00   80.78  28.44
01Nov91   52.57   80.78  28.44
01Dec91  141.12  117.84  42.99
01Jan92   39.39  141.13  28.66
01Feb92   57.86  107.21  28.51
01Mar92   53.69   74.86  21.84
01Apr92  151.33   71.36  82.99
01May92   47.50   24.69  28.22
01Jun92   45.32   23.06  18.69
01Jul92   60.98   16.21  32.52
01Aug92   45.25   19.60  30.20
01Sep92   44.21   19.60  27.59
01Oct92   43.20   27.40  26.03
01Nov92   18.51   60.17  34.29
01Dec92   62.96  134.99  38.11
;
proc tabulate data=have ;
class year;
var Telephone  Fuel  Electricity Totalcost_Cumulative;
table year='',(Telephone  Fuel  Electricity Totalcost_Cumulative)*sum =''/box=year;
run;
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 80 + 80 + 4 + 2 + 1 分析的有道理

总评分: 经验 + 80  论坛币 + 80  学术水平 + 4  热心指数 + 2  信用等级 + 1   查看全部评分

报纸
beijingdizheng 发表于 2013-9-28 08:59:05
或者用proc report,接上面的写:
proc report data=have nowd;
column year telephone  Fuel  Electricity Totalcost_Cumulative;
define year/group;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zsm4444 + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

地板
zsm4444 发表于 2013-9-30 03:44:28
beijingdizheng 发表于 2013-9-28 08:59
或者用proc report,接上面的写:
proc report data=have nowd;
column year telephone  Fuel  Electricit ...
万分感谢啊!!!!

7
tompiano 发表于 2013-9-30 14:43:21
不用proc 只用data也是可以实现的吧~~不过用proc report确实比较方便的~

8
chenys625 发表于 2013-9-30 21:23:40 来自手机
data set也可以。排序后用by,sum+,by组第一个把sum+清零,然后取by组最后一行输出。

9
zsm4444 发表于 2013-9-30 21:31:15
chenys625 发表于 2013-9-30 21:23
data set也可以。排序后用by,sum+,by组第一个把sum+清零,然后取by组最后一行输出。
能不能具体写出个编码给我,谢谢了啊!大神!

10
lifemg 发表于 2013-10-3 23:30:44
8楼的说得是 我也忘了这个怎么写咯

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 07:24