楼主: weiweiym
1306 9

[SAS EM] 求助:sas一行多列换成多行多列 [推广有奖]

  • 0关注
  • 0粉丝

大专生

26%

还不是VIP/贵宾

-

威望
0
论坛币
55 个
通用积分
0.3752
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
222 点
帖子
21
精华
0
在线时间
59 小时
注册时间
2021-11-3
最后登录
2024-7-16

楼主
weiweiym 发表于 2022-10-17 16:05:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助:sas一行多列换成多行多列
原始数据集类似:
classsubjectscoreclass1subject1score1

1

数学

100

2

语文

50

想改成这种形式:
classsubjectscore

1

数学

100

2

语文

50

求大神指点!
二维码

扫码加我 拉你入群

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

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

关键词:subjects Subject score core SCOR sas

回帖推荐

whymath 发表于8楼  查看完整内容

SAS没有内置的后缀表达式,推荐使用开源宏 %ds_varlist 来完成。你的例子中,可以用: %ds_varlist(your_data_name,pattern=/group$/i); 来表示 group 结尾的所有变量。

沙发
learsaas 发表于 2022-10-18 15:40:38
  1. data a;
  2.         input class $ subject $        score class1 $ subject1 $ score1;
  3.         cards;
  4. 1 数学 100 2 语文 50
  5.         ;
  6. run;
  7. data result;
  8.         set
  9.                 a(keep=class subject score)
  10.                 a(keep=class1 subject1 score1 rename=(class1=class subject1=subject score1=score))
  11.         ;
  12.         by class;
  13. run;
复制代码


藤椅
whymath 发表于 2022-10-18 21:05:36
1.png
查看我的精华帖:免费的 SAS 软件

板凳
weiweiym 发表于 2022-10-19 16:58:34
whymath 发表于 2022-10-18 21:05
感谢回答!还想问一下如果变量特别多的话怎么办,而且没有规律性,比如有以class开头的,而group则是var_group这种,变量较多,该怎么处理

报纸
whymath 发表于 2022-10-19 21:48:41
weiweiym 发表于 2022-10-19 16:58
感谢回答!还想问一下如果变量特别多的话怎么办,而且没有规律性,比如有以class开头的,而group则是var_ ...
仍然使用数组。这里有一些关于数组的介绍文章:https://zhuanlan.zhihu.com/p/44110790

地板
weiweiym 发表于 2022-10-20 09:35:34
whymath 发表于 2022-10-19 21:48
仍然使用数组。这里有一些关于数组的介绍文章:https://zhuanlan.zhihu.com/p/44110790
在sas中如果使用以class开头的所有变量,可以用class:表示,那有没有类似冒号的表示方法来表示以group结尾的所有变量呢

7
weiweiym 发表于 2022-10-20 16:42:50
learsaas 发表于 2022-10-18 15:40
感谢回答,但是我的变量较多100多个,有没有更便捷的方法

8
whymath 发表于 2022-10-20 22:27:57
weiweiym 发表于 2022-10-20 09:35
在sas中如果使用以class开头的所有变量,可以用class:表示,那有没有类似冒号的表示方法来表示以group结 ...
SAS没有内置的后缀表达式,推荐使用开源宏 %ds_varlist 来完成。你的例子中,可以用:
%ds_varlist(your_data_name,pattern=/group$/i);
来表示 group 结尾的所有变量。

9
weiweiym 发表于 2022-10-21 09:25:03
whymath 发表于 2022-10-20 22:27
SAS没有内置的后缀表达式,推荐使用开源宏 %ds_varlist 来完成。你的例子中,可以用:
%ds_varlist(your ...
好的好的

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

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