小编Joe*_*Joe的帖子

如何在使用read_sas后从pandas对象类型中的b'Text'获取Text?

我正在尝试使用pandas函数read_sas从SAS的.sas7bdat格式读取数据:

import pandas as pd
df = pd.read_sas('D:/input/houses.sas7bdat', format = 'sas7bdat')
df.head()
Run Code Online (Sandbox Code Playgroud)

我在df数据框中有两种数据类型 - float64和object.我对float64数据类型完全满意,所以我可以自由地将它转换为int,string等.问题是对象数据类型,我可以在df dataframe中看到这样包裹:

b'Text'
Run Code Online (Sandbox Code Playgroud)

或者像这样:

b'12345'
Run Code Online (Sandbox Code Playgroud)

代替

Text
Run Code Online (Sandbox Code Playgroud)

要么

12345
Run Code Online (Sandbox Code Playgroud)

我不能将它分别转换为字符串或int或"普通"对象数据类型.此外,我不能使用切片或替换技术来使用b''.所以我无法使用具有对象数据类型的列.请告诉我如何摆脱b''.

python object dataframe pandas

8
推荐指数
2
解决办法
6058
查看次数

SAS:如何使用ODS布局在8个PDF页面上放置8个图表?

我正在使用SAS ODS创建PDF文档.下面的代码可以将4个图形放在1页上.但是,如果我尝试在2页上放置8个图形,我得到的就是1页上的4个图形.我尝试在星号行之间复制部分并在"ods pdf close"上面再次粘贴它.但那没用.我也尝试添加"ods startpage = now;" 两者之间,但也没有用.如何在2页上放置8个图表?

goptions reset=all;

data test;
input x y @@;
datalines;
1 2 2 4 3 8 4 10 5 15
;
run;
ods pdf file="[path]/output.pdf" ;

****
ods layout Start width=10in height=8in ;
ods region x=0 y=5% width=45% height=45%;
proc gplot data=test;
title2 'PLOT #1';
plot y*x /name="mygraph1" noframe;
run;
ods region x=55% y=5% width=45% height=45%;
title2 'PLOT #2';
plot y*x /name="mygraph2" noframe;
run;
ods region x=0 y=51% width=45% height=45%;
title2 'PLOT #3'; …
Run Code Online (Sandbox Code Playgroud)

pdf graph sas sas-ods

7
推荐指数
1
解决办法
7219
查看次数

"适用于SAS 9.3中的等效循环"

我正在搜索SAS 9.3宏语言中的for循环(如Python或R中)的等效内容.该DO循环似乎的是解决办法,但正是我以前不工作,因为我想要的.我在一个带有DO循环的数据步骤中创建了一种方法,但它不适用于宏语言.例如,在数据步骤中,此代码正在运行:

DATA _NULL_;
  DO i = 1,3,5,9;
    PUT i;
  END;
RUN;
Run Code Online (Sandbox Code Playgroud)

然后按预期的日志提示:

1
3
5
9
Run Code Online (Sandbox Code Playgroud)

当我尝试在宏中使用%DO循环时,我有一个错误.

%MACRO test();
  %DO i = 1,2,4,9 ;
    %PUT i = &i;
  %END;
%MEND;

%test();
Run Code Online (Sandbox Code Playgroud)

日志提示这些消息:

ERROR: Expected %TO not found in %DO statement.
ERROR: A dummy macro will be compiled
Run Code Online (Sandbox Code Playgroud)

我是SAS和stackoverflow的新手,所以我希望我的问题不是太愚蠢.在Python和R中执行此操作非常简单,因此必须有一种简单的方法在SAS中执行此操作.

谢谢你的帮助 - J.穆勒

sas sas-macro

7
推荐指数
1
解决办法
3358
查看次数

R中的保留和滞后功能为SAS

我正在寻找一个类似于R的函数lag1,lag2retain在SAS中使用我可以与data.tables一起使用的函数.

我知道R中有类似的功能embed,lag但它们不会返回单个值或前一个值.它们返回一组完整的向量.

R中有什么东西我可以用data.table吗?

有关SAS功能的更多信息:

r data.table

7
推荐指数
2
解决办法
6226
查看次数

当我使用PROC EXPORT时,如何阻止SAS为每个字符串变量添加额外的空字节?

当我使用数据集导出数据集时PROC EXPORT,SAS 9.4会自动扩展为每个字符串变量的每个观察添加一个额外的(空)字节.例如,在此数据集中:

data test1;
    input cust_id   $ 1
          month       3-8
          category  $ 10-12 
          status    $ 14-14
;
datalines;
A 200003 ABC C
A 200004 DEF C
A 200006 XYZ 3
B 199910 ASD X
B 199912 ASD C
;
quit;

proc export data = test1
    file = "test1.dta"
    dbms = stata replace;
quit;
Run Code Online (Sandbox Code Playgroud)

变量cust_id,, categorystatus应该是str1,str3并且str1在最终的Stata文件中,因此每次观察分别占用1个字节,3个字节和1个字节.然而,SAS自动添加到每个观测,其扩展了它们的数据类型到一个额外的空字节str2,str4str2在输出Stata的文件数据类型.

这是非常有问题的,因为这是每个字符串变量的每次观察 …

sas stata

7
推荐指数
1
解决办法
339
查看次数

在SAS宏中改变宏变量的价值

我在宏中定义一个宏变量.然后,我将它喂入第二个宏.在macro2计数器内部将值更改为200.但是,当我检查宏2变量运行后我放入的宏变量内部时,它仍然显示0.我希望它存储值200?这可能吗?

 %macro macro1();
   %let variable1= 0;
   macro2(counter=&variable1)

   %put &variable1;
 %mend macro1;

 %macro1;
Run Code Online (Sandbox Code Playgroud)

sas sas-macro

7
推荐指数
1
解决办法
1746
查看次数

SAS宏变量变化

一般来说,我们如何处理需要在宏内部修改宏变量的情况; 例如,假设我有这个宏:

%macro test (arg=); 
array arrayone [&arg];   /* This is ok */
array arraytwo [&arg+1] /* This is not ok. How to make it work? */ 
... 
Run Code Online (Sandbox Code Playgroud)

当我想要%test(3)然后arraytwo需要采用维度4时,我们如何管理这些情况?

sas sas-macro

6
推荐指数
1
解决办法
1083
查看次数

R等价于.first或.last sas运算符

有人知道什么是SAS的最佳R替代品.或者持续.运营商?我没找到.

SAS拥有第一名.最后.自动变量,用于识别具有特定变量的相同值的组中的第一个和最后一个记录; 所以在以下数据集中定义了FIRST.model和LAST.model:

Model,SaleID,First.Model,Last.Model
Explorer,1,1,0
Explorer,2,0,0
Explorer,3,0,0
Explorer,4,0,1
Civic,5,1,0
Civic,6,0,0
Civic,7,0,1
Run Code Online (Sandbox Code Playgroud)

r sas

6
推荐指数
1
解决办法
9687
查看次数

union all对应和outer union对应有什么区别?

有人可以验证我对 proc sql union 操作的理解吗?我对外部联合和联合之间差异的解释如下:

  1. Union 删除重复的行,而外部 union 不删除

  2. Union 将覆盖列,而默认情况下外部 union 不会。

那么,union all对应和outer union对应的有区别吗?似乎“ALL”会消除第一个差异,而“CORRESPONDING”会消除第二个差异,但我担心我没有看到的两者之间可能存在额外的差异。

sql sas

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

SAS Enterprise Guide自定义界面颜色

有没有办法改变SAS Enterprise Guide窗口的背景颜色?我花了一个多小时试图找到解决方案,但没有成功.不幸的是,我的眼睛不能再采取白色背景.

提前致谢!

sas enterprise-guide

6
推荐指数
1
解决办法
5547
查看次数

标签 统计

sas ×8

sas-macro ×3

r ×2

data.table ×1

dataframe ×1

enterprise-guide ×1

graph ×1

object ×1

pandas ×1

pdf ×1

python ×1

sas-ods ×1

sql ×1

stata ×1