楼主: Imasasor
2708 10

怎么样在proc 步使用计算后的变量? [推广有奖]

  • 1关注
  • 64粉丝

VIP

已卖:215份资源

学科带头人

33%

还不是VIP/贵宾

-

TA的文库  其他...

超哥喜欢的文章

威望
1
论坛币
47033 个
通用积分
3.1376
学术水平
238 点
热心指数
246 点
信用等级
231 点
经验
37132 点
帖子
849
精华
3
在线时间
2235 小时
注册时间
2012-7-4
最后登录
2024-10-10

初级学术勋章 初级热心勋章 初级信用勋章 中级热心勋章 中级学术勋章

楼主
Imasasor 发表于 2012-10-17 13:12:49 |AI写论文
10论坛币
大家好,我的问题是这样的,在统计一些连续变量时,如果变量不是正态分布,要对变量进行log转换后再作统计分析,通常是在data里面将var生成新的变量log_var=log(var); 然后在proc 步作回归分析或相关分析.proc corr data=a;
var log_var;
with a;
run;

可是如果原数据集比较大,在原数据集里生成新变量就要花很长时间,有没有办法不对原数据集处理,只在proc步里面对原来的var函数计算后再统计,当然,直接用log(var)是不行的。

最佳答案

ziyenano 查看完整内容

有很多数据集?可以的话,建立一个temp,只保留需要计算的字段,每循环一次,计算另一个数据集,更新这个temp。 在过程步中加计算,确实不知道可行不可行。
关键词:ROC 怎么样 Data With 统计分析 怎么样 计算 统计 回归分析 正态分布

本帖被以下文库推荐

欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

沙发
ziyenano 发表于 2012-10-17 13:12:50
Imasasor 发表于 2012-10-17 13:25
因为原数据集比较大,
data a;
set a;
有很多数据集?可以的话,建立一个temp,只保留需要计算的字段,每循环一次,计算另一个数据集,更新这个temp。
在过程步中加计算,确实不知道可行不可行。

藤椅
ziyenano 发表于 2012-10-17 13:20:04
貌似不行;
不过话说回来,即使可以做,corr过程不还是先得计算log(var),然后再计算相关系数;
这个步骤免不了,放在data步中运行,也就没有浪费不浪费时间的问题了。

板凳
Imasasor 发表于 2012-10-17 13:25:03
ziyenano 发表于 2012-10-17 13:20
貌似不行;
不过话说回来,即使可以做,corr过程不还是先得计算log(var),然后再计算相关系数;
这个步骤 ...
因为原数据集比较大,
data a;
set a;
var_log=log(var);
run;
就这么简单的一个程序,就要将原数据集重新复制一遍,感觉太浪费时间了,我做的是一个宏的多个循环,这样的话对每个要计算的var都这么弄一遍。
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

报纸
playmore 发表于 2012-10-17 13:53:04
Imasasor 发表于 2012-10-17 13:25
因为原数据集比较大,
data a;
set a;
data和set子句相同的时候,数据集是不用复制的吧
你这段代码在SAS里就是秒算吧,花不了多少时间的吧
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

地板
Imasasor 发表于 2012-10-17 14:00:40
ziyenano 发表于 2012-10-17 13:51
有很多数据集?可以的话,建立一个temp,只保留需要计算的字段,每循环一次,计算另一个数据集,更新这个 ...
我后来也是想的您的这种方法,我觉得这样比较可行!
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

7
Imasasor 发表于 2012-10-17 14:09:51
playmore 发表于 2012-10-17 13:53
data和set子句相同的时候,数据集是不用复制的吧
你这段代码在SAS里就是秒算吧,花不了多少时间的吧
秒算不了啊,应该还是重新生新数据集的,我的电脑不是很差 未命名.jpg
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

8
playmore 发表于 2012-10-17 14:56:32
Imasasor 发表于 2012-10-17 14:09
秒算不了啊,应该还是重新生新数据集的,我的电脑不是很差
看样子是花了不少时间
用sql再试试?看看能不能减少时间
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

9
Imasasor 发表于 2012-10-17 15:02:55
playmore 发表于 2012-10-17 14:56
看样子是花了不少时间
用sql再试试?看看能不能减少时间
完蛋,不会sql
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

10
xulimei1986 发表于 2012-10-17 16:12:13
Imasasor 发表于 2012-10-17 15:02
完蛋,不会sql
proc sql;
create table temp as
select log(var) as var_new
from a;
quit;
不过对样本量大的数据集,sql的效率并不会比data步提高太多,你可以试试!
家家有本难念的经,计较的少一点,会和睦许多!!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-23 06:05