楼主: playmore
7132 5

[原创博文] 如何将一张表的所有字符变量加单引号? [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2011-10-26 15:16:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
之前我问过如何同时改变一张表的所有数值变量的值
有网友给了我一个很好的答案,如下所示:

  1. data a;
  2. input a1-a8 b1-b8;
  3. cards;
  4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  5. ;
  6. data b;
  7. set a;
  8. array sample(*) _numeric_;
  9. do i=1 to dim(sample);
  10. sample(i)=2*sample(i);
  11. end;
  12. run;
复制代码

现在我想接着再问一下如何为一张表的所有字符变量加单引号,应该只要改上面的sample(i)=2*sample(i);语句就行了,只是试了很多次没有结果,故上来问下

我现在用过||连接和CATS函数,都无法正常表达单引号,而且%STR(')在data步里好像不能执行,所以我就没有办法了,请高手指教。
二维码

扫码加我 拉你入群

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

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

关键词:字符变量 单引号 numeric Sample Input 单引号 如何 而且

沙发
playmore 发表于 2011-10-26 15:23:51
明白了,要引用单引号就要用双引号括起来,"'"就行了
为什么SAS不搞个转义字符啊
脑子总是转不开,总是受起来程序语言的影响
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

藤椅
jingju11 发表于 2011-10-27 09:16:17
playmore 发表于 2011-10-26 15:23
明白了,要引用单引号就要用双引号括起来,"'"就行了
为什么SAS不搞个转义字符啊
脑子总是转不开,总是受 ...
我还以为是变量类型的问题呢。原来是单双引号的问题。京剧

板凳
ywb0314 发表于 2011-10-30 14:54:53
  1. data b;
  2. set a;
  3. array sample(*) _character_;
  4. do i=1 to dim(sample);
  5. sample(i)="'"||sample(i)||"'";
  6. end;
  7. run;
复制代码
为什么后面的单引号不能显示;
  1. data b;
  2. set a;
  3. array sample(*) _character_;
  4. do i=1 to dim(sample);
  5. sample(i)="'"||trim(sample(i))||"'";
  6. end;
  7. run;
复制代码
而这段代码可以正常显示

报纸
playmore 发表于 2011-10-31 09:14:18
ywb0314 发表于 2011-10-30 14:54
为什么后面的单引号不能显示;而这段代码可以正常显示
trim函数是用来去掉字符串后接的多余空格的
第一个显示不出来可能是原字符串后接空格太多
不trim的话超过了sample默认的长度,所以就显示不了了
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

地板
ywb0314 发表于 2011-11-2 13:06:59
playmore 发表于 2011-10-31 09:14
trim函数是用来去掉字符串后接的多余空格的
第一个显示不出来可能是原字符串后接空格太多
不trim的话超 ...
谢谢你的解答,你好你可以试试,我用的数据只有两个字符长度。

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

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