楼主: jervie1217
2147 6

[求助]如何计算每个股东出现的次数 [推广有奖]

  • 0关注
  • 0粉丝

高中生

15%

还不是VIP/贵宾

-

威望
0
论坛币
609 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
419 点
帖子
16
精华
0
在线时间
11 小时
注册时间
2005-9-7
最后登录
2013-8-8

楼主
jervie1217 发表于 2008-11-23 17:27:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据形式如下图
公司  股东1 股东2 股东3 股东4
001    a         .         b        
002    c          .         .          .
003    a         b         .        . 
004   .           .         c          d
想要计算有多少个股东,每个股东出现了几次?
请大侠帮忙,小弟搞了一个下午没弄出来。
二维码

扫码加我 拉你入群

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

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

关键词:数据形式 求助 股东

回帖推荐

sushe1527 发表于2楼  查看完整内容

以下是引用jervie1217在2008-11-23 17:27:00的发言:数据形式如下图公司  股东1 股东2 股东3 股东4001    a         .         b         002    c          .         .&n ...

本帖被以下文库推荐

沙发
sushe1527 发表于 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;  
  }

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

藤椅
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;

板凳
sushe1527 发表于 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编辑过]

报纸
lili83xu 发表于 2008-11-24 15:24:00

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

地板
lili83xu 发表于 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吗

7
limiao579 发表于 2008-11-24 21:48:00
做出来是王道,怎么简单怎么做
转置求频数,简单!
软件是工具,何必弄的那么高深!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 06:03