楼主: fallleafsean
2104 11

关于字符串的问题 [推广有奖]

  • 6关注
  • 1粉丝

已卖:6份资源

硕士生

68%

还不是VIP/贵宾

-

威望
0
论坛币
562 个
通用积分
5.1600
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
2355 点
帖子
76
精华
0
在线时间
254 小时
注册时间
2012-9-3
最后登录
2024-4-17

楼主
fallleafsean 发表于 2012-11-6 16:54:09 |AI写论文
10论坛币
data _null_;file "C:\Users\Administrator\Desktop\test.txt";put "library";put 'create("C:/Users/Administrator/Desktop/aaa.txt")';run;
程序如上,在桌面上生成一个txt的文档,其中包含两行字符串,第一行字符串为library,
第二行是create("C:/Users/Administrator/Desktop/mplus_test/efatest.txt")、

问题一,现在第二行我是使用单引号 ’ 来区分字符串中的双引号。如果我想使用%str,如下
put "%str(create("C:/Users/Administrator/Desktop/aaa.txt"))";
却无法实现目的,如果字符串中也含有单引号 ' 的话岂不是就不能用了?
问题二,如果字符串中想引用宏变量的话如又如何解决?
问题三,为了在TXT中换行,每行字符串前面都要打一个put好麻烦啊,有米有简单的方法。。。。

最佳答案

pobel 查看完整内容

data _null_; put "%str(create(%"C:/Users/Administrator/Desktop/aaa.txt%") &SYSDATE)"; run;
关键词:字符串 Desktop Library ADMINI Create 字符串

本帖被以下文库推荐

沙发
pobel 在职认证  发表于 2012-11-6 16:54:10
data _null_;
put "%str(create(%"C:/Users/Administrator/Desktop/aaa.txt%")  &SYSDATE)";
run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
数据分析师3K + 100 + 1 + 1 + 1 热心帮助其他会员

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

和谐拯救危机

藤椅
fallleafsean 发表于 2012-11-6 17:02:43
忘了说了,是SAS程序,晕死。。。
先谢了~

板凳
ziyenano 发表于 2012-11-6 17:31:31
%let c=abcd;
data _null_;
file "";
put "&c" / 'd';
run;
/表示换行,引用宏变量,记得要在双引号里面,单引号是不解析宏变量的。
至于第一个问题,%str是生成宏变量的,好像不能这么使用。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fallleafsean + 1 + 1 + 1 观点有启发

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

报纸
fallleafsean 发表于 2012-11-6 18:05:51
先谢谢楼上的,双引号里才能引用宏变量,这个我知道,问题是,我输出的TXT文档中,字符串是含有双引号的,如果我再用双引号引用宏变量的话,就会出错。所以我就想用%str这个命令来实现。
’/'换行这个还是很有用的,再次感谢~

地板
pobel 在职认证  发表于 2012-11-6 19:38:19
1. 引用宏变量的字符串用双引号;
2. 如果字符串中有双引号,那么用两个连续的双引号。

data _null_;
    file "C:\Users\Administrator\Desktop\test.txt";
    put "library";
    put "create(""C:/Users/Administrator/Desktop/aaa.txt"") &sysdate";
run;
已有 3 人评分学术水平 热心指数 信用等级 收起 理由
Tigflanker + 1 + 1 + 1 观点有启发
fallleafsean + 1 + 1 + 1 观点有启发
ziyenano + 1 + 1 + 1 观点有启发

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

和谐拯救危机

7
fallleafsean 发表于 2012-11-6 20:55:46
太好用了。。。话说,我再恬不知耻的问下,为毛%str命令在这边不能用?是data步不能使用还是怎么着?

8
数据分析师3K 发表于 2012-11-7 16:20:59
pobel 发表于 2012-11-7 16:14
data _null_;
put "%str(create(%"C:/Users/Administrator/Desktop/aaa.txt%")  &SYSDATE)";
run;
感谢分享

9
fallleafsean 发表于 2012-12-5 18:47:39
pobel 发表于 2012-11-6 16:54
data _null_;
put "%str(create(%"C:/Users/Administrator/Desktop/aaa.txt%")  &SYSDATE)";
run;
大侠!不好意思啊~又碰到一个问题,想再请教下~万分感谢
data _null_;
file “c;\yyy.txt”;
put "%str(create(%"C:/Users/Administrator/Desktop/aaa.txt%")  &SYSDATE)";
run;
比如上面这段程序,在yyy这个文档中生成PUT中的code,如果我想在yyy中追加code怎么弄法?
就是我有一个里面已经有命令的txt文档,我想在这个文档的命令后面追加命令,不想重新生成新txt。

10
pobel 在职认证  发表于 2012-12-5 19:25:29
fallleafsean 发表于 2012-12-5 18:47
大侠!不好意思啊~又碰到一个问题,想再请教下~万分感谢
data _null_;
file “c;\yyy.txt”;
data _null_;
file “c;\yyy.txt” MOD
put "%str(create(%"C:/Users/Administrator/Desktop/aaa.txt%")  &SYSDATE)";
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
fallleafsean + 1 + 1 + 1 热心帮助其他会员

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

和谐拯救危机

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

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