楼主: cybericsson
1493 7

[求助]数据转换 [推广有奖]

  • 0关注
  • 0粉丝

本科生

42%

还不是VIP/贵宾

-

威望
0
论坛币
87 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
770 点
帖子
163
精华
0
在线时间
22 小时
注册时间
2008-10-7
最后登录
2012-2-29

楼主
cybericsson 发表于 2009-9-24 04:48:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教高人指点:
我有如下数据:
Count col1 col2 col3 col4.... col100
14    0    0    0    0    0    1
16    0    0    0    0    0    0
43    0    0    0    0    0    0
77    0    0    0    0    0    0
127    0    0    0    0    0    0
130    0    0    0    0    0    0
153    0    0    0    0    0    0
170    0    0    0    1    0    0
196    0    0    0    0    0    0
236    0    0    0    0    0    0
349    0    0    0    0    0    0
377    0    1    0    0    0    0
382    0    0    0    0    0    0
449    0    0    1    0    0    0
762    0    0    0    0    0    0
858    0    0    0    0    0    0
95    0    0    0    0    0    0
99    1    0    0    0    0    0
12    0    0    0    0    0    0
12    0    0    0    0    1    0
13    0    0    0    0    0    0
28    0    0    0    0    0    0

col1 to col100 是数据列的名, count 是数字为一的那列的总和。
我希望转换数据表得到如下的结果:
column count
col1  14
col2 16
col3  43
....
col100 28


我是过用transpose , 不过的不出结果。
希望各位大虾指点。 谢谢先。
二维码

扫码加我 拉你入群

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

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

关键词:数据转换 Transpose column Count colum 求助 数据

回帖推荐

jingju11 发表于5楼  查看完整内容

4# cybericsson

本帖被以下文库推荐

沙发
xiaosanmao 发表于 2009-9-24 05:18:20
难道只是给第一列加个序号??


data x;
input count co1 co2 co3 co4 co5 co100;
cards;
14    0    0    0    0    0    1
16    0    0    0    0    0    0
43    0    0    0    0    0    0
;run;
data y;
set x;
n=_n_;
column=compress("col"||n);
keep column count;
run;

藤椅
flutter88 发表于 2009-9-24 11:37:39
你这个好像不是转置,也可能是问题没有说清楚

板凳
cybericsson 发表于 2009-9-25 01:38:40
不好意思没有说清楚。
如2楼所说的, 的确是给第一列加个序号, 不过,这个序号是字段的名字。而且, 顺序不一定是连续的。
而是所在的列值为‘1' 所对应的字段。 比如:

Count col1 col2 col3  .... col100
14    0      0    0    1
16    1   0    0    0   
43    0    0    1    0
77    0   1    0    0

希望的结果是:
col100  14
col1       16
col3       43
col2       77

希望我的问题说清楚了。
谢谢。

报纸
jingju11 发表于 2009-9-25 02:01:16
4# cybericsson

  1. data try;
  2. length name $32;
  3. input Count col1 col2 col3  col100;
  4. array cols col1--col100;
  5. do over cols;
  6.   if cols then do;
  7.    name=vname(cols);
  8.    output;
  9.    return;
  10.   end;
  11. end;
  12. datalines;
  13. 14    0      0    0    1
  14. 16    1   0    0    0   
  15. 43    0    0    1    0
  16. 77    0   1    0    0
  17. ;
  18. run;
  19. proc print;run;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

地板
cybericsson 发表于 2009-9-27 10:56:13
多谢5楼的jingju11兄弟。

7
flutter88 发表于 2009-9-27 14:08:44
5# jingju11

真的高手,呵呵!

8
chenminzhi11205 发表于 2009-9-27 20:27:39
好多东西还看不懂,多多向大家学习

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

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