楼主: 小鳄鱼a
2003 9

请帮忙看看 [推广有奖]

  • 6关注
  • 10粉丝

已卖:280份资源

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

楼主
小鳄鱼a 发表于 2015-11-28 09:40:12 |AI写论文
100论坛币
帮忙看看  这个数据     源数据有很多观测    下面的程序有的能够给出正确的处理后的格式    有的不可以  如test中的这个观测就是这个样   不能够区分出人名


data institution1(drop = tmp_name i name_count);
  set test1;

  tmp_name = researcher;

  name_count = countw(tmp_name, "、");

  do i = 1 to name_count;
    researcher = scan(tmp_name, i, "、");
                output;
  end;

run;

test1.zip
下载链接: https://bbs.pinggu.org/a-1926344.html

3.97 KB

本附件包括:

  • test1.sas7bdat

最佳答案

banishurface 查看完整内容

不是的,是sas对顿号这个符号的识别不正常,所以那个语句是把所有的顿号换成了逗号,这样sas识别就正常了。你试过那段代码了吗?
关键词:Institution Researcher Research Researc search 程序
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
banishurface + 1 + 1 + 1 精彩帖子

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

沙发
banishurface 学生认证  发表于 2015-11-28 09:40:13
小鳄鱼a 发表于 2015-11-28 22:17
你的意思是有两个分隔符吗
不是的,是sas对顿号这个符号的识别不正常,所以那个语句是把所有的顿号换成了逗号,这样sas识别就正常了。你试过那段代码了吗?
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 10 热心帮助其他会员
小鳄鱼a + 5 + 5 + 5 + 5 精彩帖子

总评分: 论坛币 + 15  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

藤椅
banishurface 学生认证  发表于 2015-11-28 10:32:54
你是想要达到怎样的效果呢

板凳
小鳄鱼a 发表于 2015-11-28 10:56:07
banishurface 发表于 2015-11-28 10:32
你是想要达到怎样的效果呢
把人名正确的区分开来就可以了

报纸
banishurface 学生认证  发表于 2015-11-28 11:22:01
试试这个能否实现你想要的

data institution1(drop = tmp_name i name_count);
  set Test1;

  tmp_name = tranwrd(researcher,'、',',');

  name_count = count(tmp_name,',')+1;

  do i = 1 to name_count;
    researcher = scan(tmp_name,i,',');
  output;
  end;

run;

地板
Tigflanker 发表于 2015-11-28 18:25:45
遇到汉字时,应该用k族前缀

因为汉字占两个字符单位,这个、符号很可能会被识别为某两个汉字的 后一半+前一半
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 10 热心帮助其他会员
小鳄鱼a + 5 + 5 + 5 + 5 精彩帖子

总评分: 论坛币 + 15  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

7
小鳄鱼a 发表于 2015-11-28 19:00:49
Tigflanker 发表于 2015-11-28 18:25
遇到汉字时,应该用k族前缀

因为汉字占两个字符单位,这个、符号很可能会被识别为某两个汉字的 后一半+前 ...
哦    谢谢   那楼上的代码是没有问题的吧

8
小鳄鱼a 发表于 2015-11-28 22:05:31
banishurface 发表于 2015-11-28 11:22
试试这个能否实现你想要的

data institution1(drop = tmp_name i name_count);
谢谢 应该可以使用 能否说明一下为什么会出现之前那样的问题

9
banishurface 学生认证  发表于 2015-11-28 22:11:18
数据里的名字间的分隔符是、,在你用countw()和scan()的时候有错误, 所以我在 tmp_name = tranwrd(researcher,'、',','); 里改用了逗号,识别就正常了

10
小鳄鱼a 发表于 2015-11-28 22:17:38
banishurface 发表于 2015-11-28 22:11
数据里的名字间的分隔符是、,在你用countw()和scan()的时候有错误, 所以我在 tmp_name = tranwrd(researc ...
你的意思是有两个分隔符吗

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

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