EA 发帖数: 3965 | 1 数据 是 comma delimited 的 csv文件,可是我不能正确的读进sas里。因为有一个变
量‘location',是不规则的。有一些是只有城市,有一些是城市+州,结果读进sas的时
候,那些含有 州 的 record 就变成两个变量了。我用了delimiter = ',' MISSOVER
DSD 在 input语句里,可是还不能正确的输入。有其他方法可以读入吗?
LOCATION
New York,
New York, NY,
Irvine,
Dallas, | D******n 发帖数: 2836 | 2 如果一个field里面有逗号数据本来就应该输出成tab delimited,否则怎么读啊?
可以试试@ 这个东东
【在 EA 的大作中提到】 : 数据 是 comma delimited 的 csv文件,可是我不能正确的读进sas里。因为有一个变 : 量‘location',是不规则的。有一些是只有城市,有一些是城市+州,结果读进sas的时 : 候,那些含有 州 的 record 就变成两个变量了。我用了delimiter = ',' MISSOVER : DSD 在 input语句里,可是还不能正确的输入。有其他方法可以读入吗? : LOCATION : New York, : New York, NY, : Irvine, : Dallas,
| x**m 发帖数: 941 | 3 How about you read the data in your way using "," delimiter, and then you
put city and state together into LOCATION later, if it is necessary. | s*r 发帖数: 2757 | | s**********e 发帖数: 63 | 5 try to sort them out in Excel by "Text to colum", and then read them into
SAS, it's much easier this way! Good Luck! | s**********e 发帖数: 63 | 6 data name;
infile "path" dsd;
length location $15;
input location;
run;
| f*******e 发帖数: 51 | 7 try import
PROC IMPORT OUT= file
DATAFILE= "C:\path"
DBMS=CSV REPLACE;
GETNAMES=YES;
DATAROW=2; /* in case your variable names in row No.1 */
RUN;
【在 EA 的大作中提到】 : 数据 是 comma delimited 的 csv文件,可是我不能正确的读进sas里。因为有一个变 : 量‘location',是不规则的。有一些是只有城市,有一些是城市+州,结果读进sas的时 : 候,那些含有 州 的 record 就变成两个变量了。我用了delimiter = ',' MISSOVER : DSD 在 input语句里,可是还不能正确的输入。有其他方法可以读入吗? : LOCATION : New York, : New York, NY, : Irvine, : Dallas,
| u**x 发帖数: 41 | | P****D 发帖数: 11146 | 9 贱妾感觉是无论如何都没有“程序化”的方法。只能用普通读csv的方法读入,然后再
看location后面那个变量的情况具体处理。
【在 D******n 的大作中提到】 : 如果一个field里面有逗号数据本来就应该输出成tab delimited,否则怎么读啊? : 可以试试@ 这个东东
| b******e 发帖数: 539 | 10 如果真是csv文件的话,你说的情况应该不会出现,因为
New York, NY,
会有双引号括起来,变成
"New York, NY",
这样SAS会当成一个变量来读。
你这样的情况,是有办法读,但是要比较手动。我看你还是从raw data那儿改比较好。 | l*********s 发帖数: 5409 | 11 it can; just need to be quoted
【在 D******n 的大作中提到】 : 如果一个field里面有逗号数据本来就应该输出成tab delimited,否则怎么读啊? : 可以试试@ 这个东东
| D******n 发帖数: 2836 | 12 quoted data is not good
【在 l*********s 的大作中提到】 : it can; just need to be quoted
| l**********9 发帖数: 148 | 13 Why you use missover and dsd toghter? they totally have the same function in
processing the missing data. The default delimiter in dsd is ',',so you do
not need delimiter = ','. I think just "infile '...' dsd" will be ok.
Use two or more INPUT statements to read the data will be more helpful.Don`t
forget adding @ at the end of each INPUT statement.
【在 EA 的大作中提到】 : 数据 是 comma delimited 的 csv文件,可是我不能正确的读进sas里。因为有一个变 : 量‘location',是不规则的。有一些是只有城市,有一些是城市+州,结果读进sas的时 : 候,那些含有 州 的 record 就变成两个变量了。我用了delimiter = ',' MISSOVER : DSD 在 input语句里,可是还不能正确的输入。有其他方法可以读入吗? : LOCATION : New York, : New York, NY, : Irvine, : Dallas,
| S******y 发帖数: 1123 | 14 #Python 2.6 StatsGuy 2010-10-04
import re
locations = '''
New York
New York, NY
Irvine
Dallas'''
txt_lst = locations.split('\n')
txt_lst.remove('')
for item in txt_lst:
# pattern is - comma followed by two-letter state abbreviations
p = re.compile('[\s,.](NY|GA|AL|MS|FL|SC)')
m= p.search(item)
if m:
city, state = item.rstrip('\n').split(',')
else:
city = item.rstrip('\n')
state = 'N/A'
print 'City is: ' + city + '; State is: ' + state
#No warranty. Use code above at your own risk.
#=============================================== |
|