标签: sas

pandas中的大型持久性DataFrame

我正在探索作为长期SAS用户切换到python和pandas.

但是,今天运行一些测试时,我很惊讶python在尝试pandas.read_csv()128mb csv文件时内存不足.它有大约200,000行和200列主要是数字数据.

使用SAS,我可以将csv文件导入SAS数据集,它可以和我的硬盘一样大.

有类似的东西pandas吗?

我经常处理大型文件,无法访问分布式计算网络.

python sas pandas

88
推荐指数
4
解决办法
6万
查看次数

嵌套的ifelse语句

我还在学习如何将SAS代码翻译成R,然后收到警告.我需要了解我犯错误的地方.我想要做的是创建一个变量来总结和区分人口的3种状态:大陆,海外,外国人.我有一个包含2个变量的数据库:

  • 国籍:( idnat法国人,外国人),

如果idnat是法国人那么:

  • id出生地:( idbp大陆,殖民地,海外)

我想从汇总信息idnat,并idbp进入一个所谓的新变量idnat2:

  • 状态:k(大陆,海外,外国人)

所有这些变量都使用"字符类型".

列idnat2中预期的结果:

   idnat     idbp   idnat2
1  french mainland mainland
2  french   colony overseas
3  french overseas overseas
4 foreign  foreign  foreign
Run Code Online (Sandbox Code Playgroud)

这是我要在R中翻译的SAS代码:

if idnat = "french" then do;
   if idbp in ("overseas","colony") then idnat2 = "overseas";
   else idnat2 = "mainland";
end;
else idnat2 = "foreigner";
run;
Run Code Online (Sandbox Code Playgroud)

这是我在R中的尝试:

if(idnat=="french"){
    idnat2 <- "mainland"
} else if(idbp=="overseas"|idbp=="colony"){
    idnat2 <- "overseas"
} else {
    idnat2 <- …
Run Code Online (Sandbox Code Playgroud)

if-statement nested r sas

53
推荐指数
5
解决办法
17万
查看次数

使用h5py在Python中对大数据进行分析工作的经验?

我做了很多统计工作,并使用Python作为我的主要语言.我使用的一些数据集虽然可以占用20GB的内存,但这使得使用numpy,scipy和PyIMSL中的内存函数对它们进行操作几乎是不可能的.统计分析语言SAS在这里具有很大的优势,因为它可以对来自硬盘的数据进行操作而不是严格的内存处理.但是,我想避免在SAS中编写大量代码(出于各种原因),因此我试图确定我使用Python的选项(除了购买更多的硬件和内存).

我应该澄清一下像map-reduce这样的方法对我的大部分工作都无济于事,因为我需要对完整的数据集进行操作(例如计算分位数或拟合逻辑回归模型).

最近我开始玩h5py并认为这是我发现允许Python像SAS一样操作磁盘上的数据(通过hdf5文件),同时仍然能够利用numpy/scipy/matplotlib等的最佳选择.我想听听是否有人在类似设置中使用Python和h5py以及他们发现了什么.有没有人能够在迄今为止由SAS主导的"大数据"设置中使用Python?

编辑:购买更多硬件/内存当然可以提供帮助,但从IT角度来看,当Python(或R或MATLAB等)需要在内存中保存数据时,我很难将Python出售给需要分析大量数据集的组织.SAS继续在这里有一个强大的卖点,因为虽然基于磁盘的分析可能会更慢,但您可以放心地处理大量数据集.因此,我希望Stackoverflow可以帮助我弄清楚如何降低使用Python作为主流大数据分析语言的感知风险.

python sas hdf5 scipy h5py

46
推荐指数
2
解决办法
8308
查看次数

有没有办法让SAS在第一次警告或错误时停止?

SAS喜欢在发出警告和错误后继续处理,因此我经常需要在日志中向后滚动页面以查找问题.有没有更好的办法?我希望它在第一个错误或警告出现后立即停止,以便我可以修复它并再试一次.

sas

21
推荐指数
2
解决办法
2万
查看次数

有效地将SAS数据集转换为CSV

谁能告诉我以编程方式将SAS数据集转换为CSV文件的最快方法是什么.我知道我可以使用数据步骤并输出到文件等.但这是唯一的方法吗?

谢谢,阿德南.

csv sas

20
推荐指数
3
解决办法
7万
查看次数

SAS功能使用'power'/ exponential

我可能会遗漏一些明显的东西,但你如何计算SAS中的"权力"?

例如X平方,或Y立方?

我需要的是变量1 ^ variable2,但找不到语法...(我使用的是SAS 9.1.3)

sas exponent

19
推荐指数
2
解决办法
9万
查看次数

如何在SAS中检测数据集中的观察数量(或者是否为空)?

我想知道是否有一种检测数据集是否为空的方法,即它没有观察结果.或者在另一种说法中,如何获得特定数据集中的观察数量.

这样我就可以编写一个If语句来设置一些条件.

谢谢.

sas

18
推荐指数
3
解决办法
5万
查看次数

如果我从未提交过,我是否需要调用回滚?

我没有使用自动提交连接到SQL Server.如果一切顺利,我会调用commit.否则,我就退出.我是否需要显式调用回滚,否则在我们关闭连接而不提交时会自动回滚?

如果它很重要,我正在SAS中的proc sql中执行SQL命令.

更新:如果没有调用回滚,看起来SAS可能会在proc sql块的末尾自动调用commit.所以在这种情况下,回滚不仅仅是好的做法; 这是必要的.

最后更新:我们最终切换到一个新系统,在我看来,这与我们之前的系统相反.在结束事务而不指定提交或回滚时,它将回滚.因此,下面给出的建议绝对正确:始终显式提交或回滚.

sql sql-server transactions sas

18
推荐指数
1
解决办法
4364
查看次数

sas date - 将today()转换为yyyymmdd格式

如何将SAS日期转换"30JUL2009"dYYYYMMDD格式(例如20090730)?

例如:

data _null_;
  format test ?????;
  test=today();
  put test=;
run;
Run Code Online (Sandbox Code Playgroud)

会在日志中给我"test = 20090730"...

format date sas

16
推荐指数
2
解决办法
9万
查看次数

有没有办法检测何时到达SAS DATA步骤中的最后一次观察?

有没有办法检查运行时SAS数据集中有多少观察结果,或者检测到DATA步骤中何时到达最后一次观察?

对于这个看似简单的问题,我似乎无法在网上找到任何东西.谢谢!

sas

16
推荐指数
4
解决办法
2万
查看次数

标签 统计

sas ×10

python ×2

csv ×1

date ×1

exponent ×1

format ×1

h5py ×1

hdf5 ×1

if-statement ×1

nested ×1

pandas ×1

r ×1

scipy ×1

sql ×1

sql-server ×1

transactions ×1