2017-08-11 94 views
0

我在我的表中有一列,我想从数字转换为字符。Infile with informat只是选择列而不是整个表

这是我的代码:

data want; 
infile 'file location.csv' truncover dlm = ',' firstobs = 2 dsd; 
informat col $5. col; 
input col; 
Run; 

然而,这只是给了我一个列(这是改变了塔COL)。它不会输出表格的其余部分。我已经尝试过与其他列的信息+输入,但它随机用数字填充空白单元格。

有没有办法让整个表只增加一列?

+1

咦?您只在您的INPUT语句中读取一列。如果你不告诉它,SAS如何知道阅读其他专栏?请发布CSV文件的两个或三个记录的示例。 – Tom

回答

0

要与数据步读取文件,你必须自己写的一切,确实

data want; 
    infile 'file location.csv' truncover dlm = ',' firstobs = 2 dsd; 
    informat col1 col2 col3 col4 $5.; 
    input col1 $ col2 $ col3 $ col4 $; /* not sure if you need the dollars here */ 
Run; 

你可以为你产生那种代码proc import

proc import datafile='file location.csv' 
    out=want dbms=csv replace; 
    getnames=no; 
run; 

然而,这对格式几乎没有任何控制。

或者,如果您在Enterprise guide中工作,则可以从应用程序的菜单中打开该文件。这开启了一个可以调整格式之类的东西。

+0

请注意,如果SAS已经确定变量是字符,则在列表模式输入中不需要$。其目的是防止SAS将INPUT语句中第一次引用的未知变量定义为数字。 INPUT语句之前的INFORMAT语句除了附加信息之外,还具有强制SAS为变量选择类型的副作用。 – Tom

相关问题