我的任务是使用.NET读取.xpt文件,为此我使用了sas.LocalProvider,它允许我读取.xpt文件。唯一的问题是我需要提供我想要从中获取数据的表名。这种方法是不可接受的,因为表名可以变化(尽管文件中只有一个表名),并且用户不知道该名称。它们是读取.xpt文件中可用表格的一种方式吗?或者获取默认的第一个表?我试着使用OleDbConnection.GetSchema(),但是它没有给我任何关于表的信息。下面我粘贴了我正在使用的示例代码:
var cn = new OleDbConnection();
cn.ConnectionString = @"Provider=sas.
我已经创建了一个SAS表,如
Create table DX.SAS_Table as
select * from connection to oracle
(
select * from my table
)
现在我想将SAS_Table的计数插入到另一个Oracle表中,所以我执行了以下操作
Proc sql;
connect to oracle (connection..!)
execute(
INSERT INTO TEST_SAS_INSERT
select count(*) from SAS_Table
) by oracle;
退出;它向我抛出错误错误: O
我想编写一个select语句来确定Sybase IQ中一组表中的行数。
在SAS中,我把这个写成
CREATE TABLE dsnobs as
SELECT libname,memname,nlobs, datetime() format DATETIME16. as timestamp
FROM dictionary.tables
WHERE (libname=upcase('MY_LIB') & memname IN ('TABLE_1', 'TABLE_2', 'TABLE_3'));
供你参考,
SAS libn
我需要为每个种族找到object_of_search最常见的价值。我怎样才能做到这一点?不允许SELECT子句中的子查询和相关的子查询。与此类似的是:
mode() WITHIN GROUP (ORDER BY stopAndSearches.object_of_search) AS "Most frequent object of search"
但这并不是聚合,而是为每个种族和object_of_search提供了许多行:
officer_defined_ethnicity | Sas for ethnicity | Arrest rate | Most fre
有人知道Teradata SQL或SAS SQL中是否有统计模式函数(最频繁的观察)吗?或创建下表的任何替代方案:
我想创建一个包含组变量、distinct count、mean和mode的表,如下所示:
Select a, Count(Distinct(b)), Avg(c), *Mode*(c)
From table
Group By a;
谢谢!
我完全是SAS的新手,我很绝望。
所以,我的代码是:
DATA abc;
INPUT AA BB CC DD EE;
CARDS;
;
RUN;
PROC PRINT DATA = abc;
TITLE "My_Data";
RUN;
PROC UNIVARIATE DATA = abc OUTTABLE = Table NOPRINT;
VAR AA BB CC DD EE;
RUN;
PROC PRINT DATA = Table LABEL NOOBS;
TITLE "Univariate Normality Tests per V
我在SAS中有一个表,其中一列中存储了日期(例如"2005/10")。如何将其转换为SAS数据格式?
在许多其他尝试中,我尝试了以下代码:
数据测试;
format date YYMMS.;
date = input(ObservationMonth, YYMMS.);
put date=date9.;
run;
我在SAS DI Studio中创建一个ETL作业,将Teradata表读入SAS,然后在其上应用用户编写的代码,然后使用Teradata table Loader再次将SAS工作表加载到Teradata中。
将大型teradata表(50Cr或更多记录)读取到SAS工作区的最佳方式是什么?我目前正在使用以下基本SAS代码来创建工作表:
data work.out_table;
set db.in_table;
<sas-statements>;
run;
我想在SAS 9.4中将内存大小更改为6GB。我已经阅读了以前需要更改.cfg文件的文章。
我是按照这里的指示做的,但不起作用。。
然而,我的记忆大小没有变化。
proc options group = memory; run;
SAS (r) Proprietary Software Release 9.4 TS1M2
Group=MEMORY
SORTSIZE=1073741824
Specifies the amount of memory that is available to the
SORT procedure
我想要计算按另一列分组的累积最大值。
假设我有这些数据:
data have;
input grp $ number;
datalines;
a 3
b 4
a 5
b 2
a 1
b 8
;
我想要的产出是:
data want;
input grp $ cummax;
a 3
b 4
a 5
b 4
a 5
b 8
;
我的实际情况将涉及几个分组列+过滤器,理想情况下,这个累积最大值可以同时计算在几个列上。
我主要关注的是计算效率,因为我将在一千万到亿行的表上运行此操作。Proc SQL或本机SAS都受欢迎。
如果有必要,行可能会被洗牌。
系统信息
proc product_status;
在SAS里,我有一张这样的桌子:
ID ACTE
1 A
2 B
1 A
1 A
2 C
1 B
我想要下表:
ID A B C
1 3 1 0
2 0 1 1
第二个表是一个具有ID的表,对于列ACTE中的每个值,它对该ID产生的时间量。
我想知道是否可以使用proc转置。
我试过这段代码,但它会产生错误:
proc transpose data=OriginalTable out=TestTranspose;
by ID;
var Acte;
我正在使用SAS进行多重推算。输入数据并使用proc freq后,我想要输入数据的频率表。我不能制作频率表。下面是我尝试过的代码。任何帮助都将不胜感激。我猜我在第二步和第三步(代码)中犯了一些错误。
proc mi data=data1 nimpute=5 seed=54321 out=imput
min= 27 1 1 17.6354
max= 77 6 3 46.6550;
class age work;
fcs discrim (work edu/details) reg(age bmi);
var age work edu bmi;
run;
proc freq dat
我尝试过这样的东西:
data wynik;
set dane;
if x>3 than x3=3*x;
else set dane2; x3=x2;set dane;
run;
dane和dane2的行数相同
结果很有趣-在设置dane2之后,条件x>3仍然保持,但SAS总是首先观察-也就是说,它不会传递隐藏循环计数器的当前状态。提出一个问题--在迭代用户可以访问的数据集时,SAS是否有/使用带有计数器的隐藏循环?
社论:也许我应该加上标题--没有额外的循环,但这也是受欢迎的
我正在使用模块中的python字典:
custom_dictionary.py
sas = {"apple":505, "mango":404}
我的测试代码如下所示,它从导入的模块修改字典。
test.py:
# modifying dictionary, in turn it modifies original data
from custom_dictionary import sas
current_org = 5
my_org = 0
def modify_dictionary(org):
sas["apple"] = o
我将字符串从JSON文件导入到临时SAS表(SAS9.4M7)中,然后将它们写入一个永久的MySQL表( Linux上的MySQL社区服务器,8.0.12)。SAS表被设置为UTF-8,MySQL表使用"utf8_general_ci“作为表排序规则(在列级上与相关列相同)。导入到SAS工作正常,没有任何问题。但是,当我执行写入MySQL表的SAS代码时,某些行会导致错误:"Execute error: Invalid utf8 character string:“
似乎导致此错误的字符在SAS中显示为替换字符(带问号的黑色菱形)。一个实例是欧元符号( euro ),它在JSO