gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:06:57 34 4
gpt4 key购买 nike

当我将 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;

所以,有一列包含国家列表,就像

亚洲 印度 中国等等但 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 似乎也不适用于保留前导空格。

关于sas - 当我将 SAS 数据集导出到 csv 时;它正在修剪字符中的所有前导空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14516251/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com