当我将 SAS 数据集导出到 csv 时;它正在修剪字符中的所有前导空格

2024-02-16

当我将 SAS 数据集导出到 csv 时;它正在修剪字符中的所有前导空格。 请帮助我保留 csv 输出中的所有前导空格。使用的语句是:

Proc Export Data = Globl_Mth_Sumry
OutFile = "&GMUPath.\20&RptYr._&RptMt.\03 Output\01 GMU\&Brnd_Abbr.\&Brnd._&Mkt._Globl_Mth_Sumry_&RptMt.&RptYr.&NeuronQTR..csv" 
DBMS = CSV Replace; 
Run;

因此,有一列包含国家/地区列表,如下所示

亚洲 印度 中国 ETC。 但 csv 文件显示如下:- 亚洲 印度 中国。

请帮忙。


我发现这是一个有趣的问题,很大程度上是因为我确信我知道答案......却发现我不知道。

从技术上讲,这是一个解决方案,如果您时间紧迫,也许就足够了,尽管我怀疑它太笨重,无法以实际方式使用。首先,我生成数据(使用 $CHAR8. 输入以保留前导空格),然后使用固定列输出而不是列表输出来输出它。

data test;
input
@1 x $CHAR8.
@9 y $CHAR8.;
format x y $char8.;
datalines;
     USA   China
  Canada N Korea
  Russia  Mexico
;;;;
run;

 data _null_;
 file "c:\temp\test.csv" lrecl=80 dropover;
 set test;
 if _n_ = 1 then do;
 put "x,y";
 end;
 put @1 x $char8. @9 "," @10 y $char8.;
 run;

不幸的是,使用 DBMS=CSV 似乎不允许 $CHAR8。按照您的预期运行。我不知道为什么会这样。我期望的解决方案是这样写:

data _null_;
file 'c:\temp\test.csv' delimiter=',' DROPOVER lrecl=32767;
  if _n_ = 1 then        /* write column names or labels */
   do;
     put
        "x"
     ','
        "y"
     ;
   end;
 set  TEST;
 put x $ :char8. y $ :char8.;
  run;

这本质上是由 PROC EXPORT 打印到日志的代码,然后使用 :$CHAR8。在每个变量之后。无论出于何种原因,这(以及许多其他类似的事情)都不起作用。 ODS CSV 似乎也不适用于保留前导空格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我将 SAS 数据集导出到 csv 时;它正在修剪字符中的所有前导空格 的相关文章

  • SAS proc sql返回group by/order by变量的重复值

    我有一些相当简单的 SQL 应该为每个资产每季度提供 1 行 相反 我每组得到多行 下面是 SQL SAS 数据步骤和一些输出数据 重复行数 在下面的数据中为 227708 等于 Num borrowers 即 asset1 的行数 pro
  • 为当前的下一行数据编写脚本

    如果我想复制下一行的数据该怎么办 例如 客户 A 于 2015 年 1 月 1 日开始当前行程 下一次行程于 2015 年 1 月 15 日开始 因此 他当前行程的结束日期将为 2015 年 1 月 14 日 即下一次行程开始的前一天 我可
  • sas 为数据步骤中的每个实例执行宏

    我有一个宏 可以在一组给定的时间范围内将数据插入表中 它循环遍历一系列 从 到 日期 存储在数据集中 并使用 proc sql insert 语句运行宏 在所有这些结束时检查数据时 我注意到新数据集中只有最后一个 从 到 期间的数据 这是我
  • 在 SAS 中,捕获语法错误的好技术/选项是什么?

    在增强的编辑器中 颜色可能会给您提示 然而 在大型机上 我不相信编辑器中有任何东西可以帮助您 I use OPTIONS OBS 0 noreplace obs 0 选项指定从输入中读入 0 个观测值 dataset 和 NOREPLACE
  • 在SAS中运行程序的热键?

    我知道在 R 中我可以使用 control r 来运行我的程序代码 我想知道 SAS 中是否有等效的热键 如果没有 有没有办法将其 编程 到 SAS 中 运行 提交程序 的默认热键是 F8 键 如果您使用的是 Base SAS 不是 EG
  • SAS数字到字符的转换?

    当我们将数字转换为字符时 我们应该使用如下的数字格式 data test prodID 001 result put prodID 1 run proc print run 我也尝试过使用字符格式 1 而且它也有效 data test pr
  • 在SAS中将字符变量转换为数值

    我正在 SAS 中创建字符变量的数字版本 我用的是最好的32 数字格式以及输入语句 因为我不想丢失任何数据 下面是 SAS 删除数据的示例 我不清楚原因 DATA trial X 1264263 336532 Y INPUT X BEST3
  • 使用 R 的过程 GLM (SAS)

    我需要测试应该在奶牛遗传评估模型中包含哪些效应 在 SAS 中我会使用 proc GLM SAS 代码为 data paula1 set paula0 proc glm class year herd season model milk y
  • 通过电子邮件发送 SAS html 输出

    我正在使用 SAS Enterprise Guide 6 1 我正在尝试使用 Windows 调度程序对下面的程序进行批处理以生成每周报告 它将有一些过程打印和 sgplots 我将其发送给的用户是高级用户 并且没有 SAS 如果他安装了
  • 从 .Net 中的 SAS 数据源读取数据

    我被要求在 ASP Net 应用程序中从 SAS 读取一些数据 我有 Windows 窗体应用程序的工作代码 然而相同的代码doesn t在 ASP Net 中工作 但我可以尝试一下 具有相同引用的干净项目始终会失败 这是我所得到的连接 S
  • SAS中是否有相当于R函数表的?

    在 R 中 函数table使用交叉分类因素构建列联表 是否有一个等效的 SAS PROC 可以重现此 R 函数的结果 Example x lt data frame x rep 1 2 times 5 y rep 1 2 each 5 ou
  • XPT 到 CSV 的转换? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也许这是错误的地方 但我不太确定该把它放在哪里 我有一个非常大的 XPT 格式的压缩 SAS 文件 我
  • SAS 中的“auto.arima”?

    我曾经使用 auto arima 在 R 中运行 arima 模型来识别适合数据的最佳 arima 模型 即使没有它 在 R 中编写一个函数来执行类似的任务也很容易 然而 我这几天google了一下 在SAS中找不到类似的过程 有谁知道SA
  • SAS 和 Excel 中百分位数的不同结果

    我正在尝试获取 SAS 中的百分位数 我在 Excel 中得到了百分位数 我期望在 SAS 中也得到相同的结果 但是当我在 SAS 中得到百分位数时 它与 excel 中的不同 我正在使用下面的示例数据 1 2 3 4 5 6 7 8 9
  • SAS 宏日期问题

    我对 SAS 完全陌生 我的数据库包含 2000 2011 年的数据 我的数据集列表对于每个数据集都是这样的date TP 2004012 for 26JAN2004 TP 20040127 for 27JAN2004 TP 2004012
  • 转置逗号分隔字段

    我有一个如下所示的数据集 并且正在使用 SAS Enterprise Guide 6 3 data have input id state cards 134 NC NY SC 145 AL NC NY SC run 我有另一个数据集 其中
  • SAS 全球日期比较

    我正在尝试进行日期比较 但没有得到正确的结果 有谁知道发生了什么事吗 macro ttt let check start 28APR2014 if check start d lt 25may2014 d then let true 1 e
  • 如何读取从 Access 导入的 SAS 数据集(不符合 SAS 命名约定)

    我已使用 Libname 将 Access DB 导入 SAS 库名称 accdb c mydata base accdb DB 中的所有表现在都在 accdb 库中 但 Access DB 中的表名称与 SAS 数据集命名约定不匹配 我的
  • SAS,按组求和

    我想通过var1计算总和 你能用两种方法来计算吗 SQL 和数据步骤使用 if first var1 data have input var1 var2 var3 datalines 1 a 3 1 a 4 1 a 3 2 b 5 2 b
  • SAS合并多个表

    我想知道合并多个表的最佳方法是什么 我在所有表中都有唯一的标识符 我应该在对表进行排序后一步加入所有表 还是应该逐步进行一一表合并 这有关系吗 您可以一步进行多次合并 然而 这并不是最安全的方法 如果您的数据可能存在缺陷 最好逐步执行此操作

随机推荐