楼主: appleqiuqiu
1682 10

[问答] 如何把一样观测拆成几行观测 [推广有奖]

  • 0关注
  • 1粉丝

副教授

41%

还不是VIP/贵宾

-

威望
0
论坛币
3631 个
通用积分
2.5000
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
4191 点
帖子
133
精华
0
在线时间
1514 小时
注册时间
2010-4-27
最后登录
2022-6-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我的数据是这样的:

第一列是星座,第二列是id号,剩下的第三列往后是该id的标签,具体如下:

天平座  120112010  旅游  天平座 逛街 美食达人
水瓶座  120113044  汽车  美妆 教育
金牛座  120234343  装修  读书  中欧商学院  金牛座  R语言  统计之都

每个人的标签数是不一样的,我希望变成下面的形式

天平座  120112010 旅游
天平座  120112010 天平座
天平座  120112010逛街
天平座  120112010 美食达人
水瓶座  120113044 汽车
水瓶座  120113044 美妆
水瓶座  120113044 教育
金牛座  120234343 装修
金牛座  120234343 读书
金牛座  120234343 中欧商学院
金牛座  120234343 金牛座
金牛座  120234343 R语言
金牛座  120234343 统计之都

大神们来拯救小菜鸟吧!最近又开始捣鼓数据,所以问题比较多。。。
二维码

扫码加我 拉你入群

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

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

关键词:中欧商学院 金牛座 水瓶座 R语言 商学院 如何

沙发
wangxiuyu1993 发表于 2013-11-28 00:06:08 |只看作者 |坛友微信交流群
SAS吗?每行观测的变量数量都不一样你是怎么读进去的..=.=

使用道具

藤椅
appleqiuqiu 发表于 2013-11-28 00:22:49 |只看作者 |坛友微信交流群
wangxiuyu1993 发表于 2013-11-28 00:06
SAS吗?每行观测的变量数量都不一样你是怎么读进去的..=.=
是SAS,这个很简单,用infile+informat命令,没有的,他就会默认为空~

使用道具

板凳
appleqiuqiu 发表于 2013-11-28 00:23:39 |只看作者 |坛友微信交流群
自己再顶一下,期望明早起来的时候能看到大神们的回复!

使用道具

报纸
wangxiuyu1993 发表于 2013-11-28 00:32:13 |只看作者 |坛友微信交流群
好吧- -我用SAS解决不了的问题一般都用MATLAB或者C++解决,因为SAS我才学不到一个月...这个我觉得如果数据量比较大的话可以用C++

使用道具

地板
yuerqieqie 发表于 2013-11-28 03:04:04 |只看作者 |坛友微信交流群
假设你已经读入到SAS dataset “test” 里了。第一个变量叫constellation,第二个变量叫id,之后的标签叫label 。假设最多有label1-label10。
proc sort data = test; by constellation id; run;

data result;
    set test; by constellation id;
    array tmp{*} $ label1-lable10;
    length label $20.;
    do i = 1 to dim(tmp);
        if tmp[i] ne '' then do;
            label = tmp[i];
            output;
        end;
    end;
    keep constellation id label;
run;
   
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
Actree + 1 + 1 + 1 不错
zzxx53 + 1 + 1 热心帮助其他会员

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

使用道具

7
ziyenano 发表于 2013-11-28 10:51:09 |只看作者 |坛友微信交流群
data ex;
infile cards missover;
input name $ id (s1-s6)(:$10.);
cards;
天平座  120112010  旅游  天平座 逛街 美食达人
水瓶座  120113044  汽车  美妆 教育
金牛座  120234343  装修  读书  中欧商学院  金牛座  R语言  统计之都
;
run;


proc transpose data=ex out=ex1;
by name id notsorted;
var s1-s6;
data ex2;
set ex1;
where col1 ne "";
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Tigflanker + 1 + 1 + 1 请输入原因

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

使用道具

8
appleqiuqiu 发表于 2013-11-28 13:29:15 |只看作者 |坛友微信交流群
wangxiuyu1993 发表于 2013-11-28 00:32
好吧- -我用SAS解决不了的问题一般都用MATLAB或者C++解决,因为SAS我才学不到一个月...这个我觉得如果数据量 ...
我SAS解决不了就来这里问啦,牛人超级多!!!个人认为处理数据SAS还是比较强大的,matlab我通常写算法做计算用,C++根本不会。。。。

使用道具

9
appleqiuqiu 发表于 2013-11-28 13:30:23 |只看作者 |坛友微信交流群
ziyenano 发表于 2013-11-28 10:51
data ex;
infile cards missover;
input name $ id (s1-s6)(:$10.);
超级给力!经试验已经成功,多谢牛人帮助!!!

使用道具

10
appleqiuqiu 发表于 2013-11-28 13:31:10 |只看作者 |坛友微信交流群
yuerqieqie 发表于 2013-11-28 03:04
假设你已经读入到SAS dataset “test” 里了。第一个变量叫constellation,第二个变量叫id,之后的标签叫la ...
yuerqieqie大神再次帮助了我!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 05:50