全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2094 6
2008-11-23
数据形式如下图
公司  股东1 股东2 股东3 股东4
001    a         .         b        
002    c          .         .          .
003    a         b         .        . 
004   .           .         c          d
想要计算有多少个股东,每个股东出现了几次?
请大侠帮忙,小弟搞了一个下午没弄出来。
二维码

扫码加我 拉你入群

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

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

全部回复
2008-11-23 20:34:00
以下是引用jervie1217在2008-11-23 17:27:00的发言:
数据形式如下图
公司  股东1 股东2 股东3 股东4
001    a         .         b        
002    c          .         .          .
003    a         b         .        .   
004   .           .         c          d
想要计算有多少个股东,每个股东出现了几次?
请大侠帮忙,小弟搞了一个下午没弄出来。

搞出来才是王道!你把数据全复制到一个 123.txt 文件里面 放到一个工程同目录下 下面程序测试过 肯定对

  #include   <iostream>  
  #include   <vector>  
  #include   <algorithm>    
  #include   <string>  
  #include   <assert.h>  
  #include   <fstream>  
  using   namespace   std;  
   
  struct   Pair  
  {  
  string   name;  
  double   val;  
  };  
   
  vector<Pair>   pairs;  
   
  double&   value(const   string&   s)  
  {  
  for(int   i=0;i<pairs.size();i++)  
      if(s==pairs.name)  
      return   pairs.val;  
    Pair   p;  
    p.name=s;  
    p.val=0;  
    pairs.push_back(p);  
    return   pairs[pairs.size()-1].val;  
  }  
   
  int   main()  
  {  
  string   buf;  
  ifstream   ifile(   "123.txt"   );  
  while   (ifile>>buf)  
  value(buf)++;  
  for(vector<Pair>::const_iterator   p=pairs.begin();p!=pairs.end();++p)  
  cout<<p->name<<":"<<p->val<<'\n';  
  return   0;  
  }

二维码

扫码加我 拉你入群

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

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

2008-11-23 21:47:00

高手就是不一样,我现在先转置,再计算频数
proc transpose data = b07q3 out = b07q3try
(drop = _name_)PREFIX=y;
by firm;
var share1name share2name share3name share4name;
run;

proc freq data=b07q3try;/*查看数据*/
table y1/out=describe1;
run;

二维码

扫码加我 拉你入群

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

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

2008-11-23 22:58:00
以下是引用jervie1217在2008-11-23 21:47:00的发言:

高手就是不一样,我现在先转置,再计算频数
proc transpose data = b07q3 out = b07q3try
(drop = _name_)PREFIX=y;
by firm;
var share1name share2name share3name share4name;
run;

proc freq data=b07q3try;/*查看数据*/
table y1/out=describe1;
run;

转置意义不大   结果是一样的

[此贴子已经被作者于2008-11-24 15:37:26编辑过]

二维码

扫码加我 拉你入群

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

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

2008-11-24 15:24:00

转置是为了将股东1到股东4这四个变量合并为一个变量y1,从而方便计算频数。

二维码

扫码加我 拉你入群

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

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

2008-11-24 15:28:00

[QUOTE]#include   <iostream>  
  #include   <vector>  
  #include   <algorithm>    
  #include   <string>  
  #include   <assert.h>  
  #include   <fstream>  
  using   namespace   std;  
   
  struct   Pair  
  {  
  string   name;  
  double   val;  
  };  
   
  vector<Pair>   pairs;  
   
  double&   value(const   string&   s)  
  {  
  for(int   i=0;i<pairs.size();i++)  
      if(s==pairs.name)  
      return   pairs.val;  
    Pair   p;  
    p.name=s;  
    p.val=0;  
    pairs.push_back(p);  
    return   pairs[pairs.size()-1].val;  
  }  
   
  int   main()  
  {  
  string   buf;  
  ifstream   ifile(   "123.txt"   );  
  while   (ifile>>buf)  
  value(buf)++;  
  for(vector<Pair>::const_iterator   p=pairs.begin();p!=pairs.end();++p)  
  cout<<p->name<<":"<<p->val<<'\n';  
  return   0;  
  }[/QUOTE]

这个是C吧,害得我看了半天,想SAS里有这样的code吗

二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群