g*******y 发帖数: 380 | 1
sorry, it's "regressions by day".
I forgot how to revise my post in telnet. :( |
|
q**j 发帖数: 10612 | 2 no daniu, but you really need to do some homework yourself. it is not very n
ice to ask these questions w/o any effort made. at least you can read some s
as starter books.
1. to read data, first save data into .csv file and
proc import data = yourdata dlm=",";
run;
2. to merge:
proc sql or merge statement.
3. to transpose:
proc transpose.
they |
|
c*********t 发帖数: 340 | 3 macro
里面包括proc reg XXX;
ods output ParameterEstimates=result1
然后merge 之前的result和新的Result1
最后输出成一个文件
我这几天也都在做类似的事情,反正这种思路是可行的~ |
|
s******e 发帖数: 841 | 4 我有这么一段code从database里面读取data
tube<-importData(file="TubeData",type="ODBC",odbcConnection="DSN=TubeData;
UID=qdcUser;PWD=qdc*user;
APP=S-PLUS;WSID=HTU10063D;DATABASE=TubeData",odbcSqlQuery="Select PART_NO,
SZUG_NO,CYL_NO,SZUG_TUBE_NO,
OD_AVG,LENGTH_SPEC from TUBE where PART_NO=19582176 and SZUG_NO=7 and CYL_NO
='09020361' order by SZUG_TUBE_NO")
我的问题是sql语句里面的19582176, 7, '09020361'怎么可以换成R中的变量,因为
我每个loop都要读取一次数据,每次PART_NO, SZUG_NO, CYL_NO都是不同的,怎样才能
把变量值用到那个sql语句里面
谢谢 |
|
o******6 发帖数: 538 | 5 ☆─────────────────────────────────────☆
sturtle (huhu) 于 (Sat Mar 1 12:16:54 2008) 提到:
我现在有个数据,形如:
a b c d
...data...
a,b,c,d是数据的column name, 我现在想做a vs d, b vs d, c vs d的proc mixed
,
但是非常奇怪的是proc mixed 不能像 proc glm那样用 model a b c = d 一次就得到
所有model,必须 model a=d, model b=d这样一个个的来, 所以我打算做个循环来自
动做这件事,但是我不知道怎么自动的读出column name和生成 model X=d这样的语句
,请大侠们帮忙。
☆─────────────────────────────────────☆
chrd (对酒当歌,杜绝灌水) 于 (Sat Mar 1 12:29:27 2008) 提到:
1 proc contents |
|
z**k 发帖数: 378 | 6 你说的都是非法的,'01Jan1960'd这样的用法是在给变量赋值,应该是在coding时就给
出的,所以
格式比较死板,你可以写 x=1000 为什么还要写 x='1,000'n 呢。
用datalines或者infile方式读数据的话就比较灵活了,1,000可以用comma8.格式来读
取,不
过"1993-09-07"我就不清楚了,似乎SAS要求年份要在末尾,either mmddyy or ddmmyy |
|
D******6 发帖数: 6211 | 7 我用SAS读一个中文数据库,字符字段
源文件如下:
id name address
1, 张三,北京市东城区
2,李四,北京市西城区
。。。
。。。
我用的代码如下:
DATA name;
infile 'G:\name.csv' DLM = ',' DSD MISSOVER;
input id $ name $ address $;
读到SAS里的结果如下:
id name address
1 张三 北京市东
2 李四 北京市西
现在出现的问题是,如果address太长或者任何字符字段长过8个都读不进去,读到SAS
里以后,只有4个中文字符,也就是字节长8 。不是说以$这样结尾读数据都是按照有多
长读多长么?还是哪里有什么限制,我没有打开?
谢谢指点! |
|
A*******s 发帖数: 3942 | 8 从dbms server里读数据的方法很多,你google一下sas/access。
check |
|
f*****a 发帖数: 496 | 9 这个用sas做很简单,再大的数据量都能很准很快的算出来。
方法: Last nonmissing value forward
/*读数据,处理原数据*/
data a;
input ID DRUG_DOSAGE $ @@;
cards;
1 0.4
1 NA
1 NA
1 0
1 NA
2 0.6
2 NA
2 0
3 NA
3 0.2
3 NA
3 NA |
|
b2 发帖数: 427 | 10 我又一组数据,20个变量,大约700万个观测值存在csv里面。
1 双击文件用excel打开一部分,会损坏原始文件么?
2 这二十个变量再csv文件里被分布在3个列里面,用|分割,具体情况是:
1)每个列里面含有的变量数不同,即 对于某些观测值column 1可能含5个变量,而对
于其他的观测,
第一列可能有8个变量;
2)某些观测,有的变量内容每分隔在不同的列里面;
3)同一变量内部,每个观测值的长度也不同;
我试过
data _null;
infile 'path' dsd firstobs=2 dlm=',' dlm='|';
input v1 $ v2 $ ... v20 $;
run;
或者
1 读入SAS;2输出每个列到新的csv文件中;但是每个列有含有不同数量的变量数。比
较麻烦,
请问有谁能指点我一下,谢谢! |
|
A*******s 发帖数: 3942 | 11 没看到数据不好说,你试试用3 variables 读入3列,然后用do while + scan
function 把每列中的变量读出来。 |
|
S******y 发帖数: 1123 | 12 It will be very easy to do in Python.
Can you post your data (first 50 rows) here?
I will send you the Python code to solve it. |
|
w******a 发帖数: 25 | 13 StatsGuy方便把code也在这里贴一下吗?谢谢 |
|
M*********9 发帖数: 15637 | 14 我知道怎么读下面的数据:
a b c
1 1 2
1 2 5
1 3 1
2 1 3
2 2 7
2 3 4
3 1 3
3 2 8
3 3 1
4 1 2
4 2 0
4 3 9
如果数据排成下面的格式怎么读? 怎么给每个数的位置赋值? 如果不行, 是不是必
须得学C++之类的才行? 谢谢
2 5 1
3 7 4
3 8 1
2 0 9 |
|
D******n 发帖数: 2836 | 15 you should really state what you wanna do, why make us guess?
so i guessed, u mean multiple observation in one line?
input x @@;
will do |
|
M*********9 发帖数: 15637 | 16 不好意思,没说清楚。 我要读出C, 同时要记录a, b的信息。 因为不同软件FORMAT不
一样。 我要转换输出形式。
天啊。。。。表达能力太差了。 不知道我现在说清楚了没。。。。//汗。 |
|
A*******s 发帖数: 3942 | 17 google proc transpose, reshape data, long to wide, wide to long |
|
D******n 发帖数: 2836 | 18 data a1;
retain a 1;
do b=1 to 3;
input c @@;
output;
end;
a=a+1;
datalines;
1 2 3
4 5 6
1 4 5
;
run; |
|
|
|
S******y 发帖数: 1123 | 21 #No need for C++. Python will do. |
|
s*****n 发帖数: 2174 | 22 这种东西怎么可能用什么软件读数据? 哪个机器上能有这么大的内存和硬盘啊.
肯定都是server上分布式计算. |
|
d*******o 发帖数: 493 | 23 Open it with Excel, then choose the cols you want |
|
b*****e 发帖数: 223 | 24 好像不行吧,我们要求都用最原始数据啊,不能直接在 Excel 里面做好像。 |
|
D******n 发帖数: 2836 | 25 use awk or cut in unix/linux or cywin , |
|
d*******o 发帖数: 493 | 26 data one;
infile whatever;
informat col300-col310 $varying.;
input col1-col500;
run; |
|
b*****e 发帖数: 223 | 27 这样我还是要把分散的那些 char columns 给都列出来?我就是不想干这个,因为那些
char columns 我未必用到呢,一个个去找有点不情愿 //鸡贼 |
|
|
k*******a 发帖数: 772 | 29 data a;
array col{5} $;
do i=1 to 5;
input col{i} $ @;
if input(col{i},8.) ne . then col{i}=0;
end;
datalines;
a34 33 34 bbd 56.5
bbb 33 2 ddf 12
;
proc print data=a;run;
proc transpose data=a out=b;
var col1-col5;run;
data b;
set b;
if col1 ne 0;
proc print data=b;run;
proc transpose data=b out=c(drop=_name_);
var col1-col2;
run;
proc print data=c;run; |
|
d*******o 发帖数: 493 | 30 *****Request: 试图把所有 columns 都读成 char,但是不行。有没有什么
好办法?******;
data one;
infile whatever;
informat col1-col500 $varying.;
input col1-col500;
run;
***Tested**********; |
|
b*****e 发帖数: 223 | 31 谢大家!
用大胖猫的 informat 可行,我就用它了。 |
|
d******m 发帖数: 2333 | 32 我记得是excecution在读record之前。
如果这样的话,base 32的答案是不是应该是a?
when sas is using sum statement, the sum variable is assigned to 0 when the
data begins execution?
Thanks in advance! |
|
l*****h 发帖数: 35 | 33 通过server API, 写入.dat文件, 然后需要从这个文件不断的读数据进行处理, 问题
是数据是
real-time得,也就是说,想同时读写文件:每写一行新的数据,就读一行新的数据。
请教大牛应
该用什么方法或函数? |
|
l*********s 发帖数: 5409 | 34 google "mixing style of input in SAS" |
|
b********o 发帖数: 60 | 35 我用google找过了,可是都不成功。
想用 Column input,只能指定固定的起点和终点,也不能用。
想用 INPUT LASTNAME $10 @',' FIRSTNAME $19. BIRTH $ 23-30 PHONE $31-39;
也不行,因为会把下面的生日数据读入。 |
|
s******r 发帖数: 1524 | 36 input fullname
then scan() |
|
h********o 发帖数: 103 | 37 DATA TEST;
INFILE CARDS DLM = ",";
INPUT FNAME $ LNAME $ BIRTH $ 23-30 PHONE $ 31-40;
CARDS;
SMITH ,BOB 01/03/668845333883
JACKSON ,ANDREW 03/09/779917736612
ALICE ,KIM 02/24/542243226673
;
PROC PRINT DATA = TEST NOOBS;
RUN;
===========================================================
FNAME LNAME BIRTH PHONE
SMITH BOB 01/03/66 8845333883
JACKSON ANDREW 03/09/77 9917736612
... 阅读全帖 |
|
|
b********o 发帖数: 60 | 39 成功了!多谢多谢!
但是还没有这么简单。如果firstName超过8个字符,就不好用了?
怎么办?
比如:
SMITH ,BOB ER W 01/03/668845333883
JACKSON ,ANDREW JR II 03/09/779917736612
ALICE ,KIM 02/24/542243226673
输入结果:
FNAME LNAME BIRTH PHONE
SMITH BOB ER W 01/03/66 8845333883
JACKSON ANDREW J 03/09/77 9917736612
ALICE KIM 02/24/54 2243226673
第二条记录被截取了。 |
|
b********o 发帖数: 60 | 40 能不能给个code? 我试过scan,还是不行。 |
|
o****o 发帖数: 8077 | 41 this is because your first record, implicitly, defined the length of
LASTNAME to be $8.;
Specify LENGTH LASTNAME $16. upfront to avoid such problem |
|
|
d******9 发帖数: 404 | 43 Scan function should works, however, we need define the delimiter as ",".
Try this:
length F_name L_name $20;
F_name=scan(Name,1,",");
L_name=scan(Name,2,","); |
|
c******5 发帖数: 22 | 44 哦,是不是读数据的时候还要调用format? 谢谢你这么快答复,下面是log文件:
273 LIBNAME proj1 '...';
NOTE: Libref PROJ1 was successfully assigned as follows:
Engine: V9
Physical Name: ...
274
275 OPTIONS FMTSEARCH=(proj1.formats_1, proj1.formats_2, proj1.formats_3);
277 /*2) Read the sas datafiles*/
278 Proc print data=proj1.test;
279 Run;
ERROR: Format ... not found or couldn't be loaded for variable ...
ERROR: Format ... not found or couldn't be loaded for variable ...
ERROR: Format ... not found or c... 阅读全帖 |
|
z**********i 发帖数: 12276 | 45 读数据的时候要调用format. 或许你的FORMATS有问题? LOG提示你DATASET的FORMATS
没有在你的FORMATS FILE里.
proc format library=proj1.formats_1 fmtlib;
run;
3); |
|
u*********r 发帖数: 1181 | 46 在run 一个程序,用csv 文件读入数据
但是 发现程序隔行读数据,本来灭个变量有24个数据,最后读了12个
不晓得发生什么问题,我是SAS 蝌蚪
请大牛指教
现贴开始的一段code
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile 'k:\Kaiwang\run20\run20.CSV' delimiter = ',' firstobs=2 dsd ;
informat LVCYP1A1 best32. ; |
|
p********r 发帖数: 1465 | 47 要用SAS读取一个很大的CSV文档,我猜里面有些中文或者日文之类的记录,SAS是英文
版的读不出来,反而影响了数据的读取。我想请教这种情况应该如何处理啊?
(我就是用data infile input做的。)
多谢了 |
|
|
t*****2 发帖数: 94 | 49 QUESTION
A raw data file is listed below:
---|---10---|---20---|----30
John McCloskey 35 71
June Rosesette 10 43
Tineke Jones 9 37
The following SAS program is submitted using the raw data file as input:
data work.homework;
infile 'file-specification';
input name $ age height;
if age LE 10;
run;
How many observations will the WORK.HOMEWORK data set contain?
A. 0 B. 2 C. 3
为什么答案是3个呢?我觉得读数据的时候就应该会出现ERROR呀, 即便不出现问题,
也只可能是2个呀。
求赐教! 先谢谢了! |
|
t******o 发帖数: 70 | 50 我有类似的经历。
我做genomics data,都是上g的data,R读数据基本上是考验耐心,而SAS都是几秒钟就
读进去。
曾经做multiple imputation,对一个比较大的数据impute missing value。
R的code就很短的三五行,结果运行时间估计是20小时。
同事做计算机的,写了满满一页perl code来实现。写code花了半个小时,运行不到三
分钟。
R的有点在于有很多现成的统计函数和模块,但data manipulation上速度确实比SAS慢
很多,更不用说perl,C++之类的 |
|