我需要一个理论上的答案.
想象一下,你有一个包含15亿行的表(该表是基于列的DB2-Blu创建的).
您正在使用SAS,并且您将通过使用Proc Summary类似的最小值/最大值/平均值,标准偏差值和百分位数-10,百分位数90来通过您的对等组进行一些统计.
例如,您有30.000个对等组,并且每个对等组中有50.000个值(总计1.5亿个值).
另一种情况是,您有300万个对等组,并且每个对等组中也有50个值.所以你再次拥有15亿的价值.
如果您拥有较少的对等组但每个对等组中的值更多,它会更快吗?或者,对于更多的对等组,它会更快,但每个对等组的值会更少.
我可以测试第一个案例(每个对等组有30.000个对等组和50.000个值),大约需要16分钟.但我无法测试第二种情况.
如果我有300万个对等组,并且每个对等组中有50个值,你能否为运行时写一个近似的预测?
这个问题还有一个方面.如果我使用这些统计数据会更快Proc SQL吗?
示例代码如下:
proc summary data = table_blu missing chartype;
class var1 var2; /* Var1 and var2 are toghether peer-group */
var values;
output out = stattable(rename = (_type_ = type) drop = _freq_)
n=n min=min max=max mean=mean std=std q1=q1 q3=q3 p10=p10 p90=p90 p95=p95
;
run;
Run Code Online (Sandbox Code Playgroud) 我一直在寻找解决方案,但我在SAS社区找不到任何类似的问题.所以这是我的问题:我有一个很大的SAS表:让我们说2个类和26个变量:
A B Var1 Var2 ... Var25 Var26
-----------------------------
1 1 10 20 ... 35 30
1 2 12 24 ... 32 45
1 3 20 23 ... 24 68
2 1 13 29 ... 22 57
2 2 32 43 ... 33 65
2 3 11 76 ... 32 45
...................
...................
Run Code Online (Sandbox Code Playgroud)
我需要通过Class = B来计算所有26个变量的累积和,这意味着对于A = 1,它将累积到B = 1,2,3; 对于A = 2,它将通过B = 1,2,3累积.结果表将如下:
A B Cum1 Cum2 ... Cum25 Cum26
-----------------------------
1 1 10 20 ... 35 30 …Run Code Online (Sandbox Code Playgroud) 我在 Excel 上创建了一个自定义功能区选项卡,例如Excel_app_v1.xlsm,并且此功能区选项卡下的按钮连接到宏。因此,当我单击此按钮时,宏会执行一些表导入应用程序。
第一件奇怪的事情是,我只为这个 Excel 文件创建了这个功能区选项卡和按钮,但功能区选项卡和按钮出现在所有其他 Excel 文件中,即使原始 Excel 文件Excel_app_v1.xlsm没有打开。
第二个问题是我使用“另存为”选项创建了先前 Excel 文件的第二个版本。所以新的 Excel 文件就像Excel_app_v2.xlsm. 当我单击功能区选项卡下的按钮时,它会打开第一个 Excel 文件Excel_app_v1.xlsm,即使它尚未打开。我删除了第一个 Excel 文件,但随后出现“无法Excel_app_v1.xlsm在路径上找到”之类的错误。
显然,自定义功能区选项卡下的宏按钮链接到第一个 Excel 文件,但我找不到更改此设置的菜单选项。我在vba代码中添加了ThisWorkbook所有sheet表达式,但并没有解决问题。单击按钮仍在尝试打开旧的 Excel 文件。
VBA 代码如下。该按钮链接到Sub ImportTable。首先,它询问用户是否想要继续该过程。单击该按钮后,它会立即打开以前的 Excel 文件,同时出现消息框。
Sub ImportTable()
Application.ScreenUpdating = False
YearMonth = ThisWorkbook.Sheets("tab1").Cells(11, 2).Value
' The Macro button opens the previous Excel file before clicking Yes or No on the message box
answer = MsgBox("Warning! Brings the newest source …Run Code Online (Sandbox Code Playgroud)