sas 取数据集的后150个观测生成新数据集
时间: 2023-11-23 19:06:50 浏览: 131
在 SAS 中,可以使用以下代码来生成一个新的数据集,其中包含原始数据集的后150个观测:
```
data new_dataset;
set original_dataset (firstobs=nobs-149);
if _N_ <= 150;
run;
```
其中,`nobs`是原始数据集的观测数,`_N_`是当前数据集的观测序号。
这段代码会首先将指针定位到原始数据集的倒数第150个观测,然后从该观测开始取出数据,直到最后一个观测。由于我们只需要取出后150个观测,因此在 `if` 语句中加入了一个条件,保证只有前150个观测被保留在新数据集中。
运行上述代码后,就可以得到一个包含原始数据集后150个观测的新数据集 `new_dataset`。
相关问题
sas 取数据集后150个观测生成新数据集
假设你已经使用 SAS 成功获取了一个数据集,现在想要从中选取前 150 个观测并生成一个新的数据集,可以按照以下步骤进行操作:
1. 使用 DATA 步骤打开原始数据集:
```
data original;
set your_dataset;
run;
```
2. 使用 OBS=150 选项来限制观测数量,生成新的数据集:
```
data new_dataset;
set original (obs=150);
run;
```
以上代码将从原始数据集中选取前 150 个观测,并将其保存到一个名为 new_dataset 的新数据集中。你可以根据需求调整观测数量和数据集名称。
sas 读取数据集的后150个观测生成新数据集
假设你要读取的数据集文件是 "data.csv",以下是使用 SAS 代码读取数据集后150个观测并生成新数据集的步骤:
1. 使用 `PROC IMPORT` 导入数据集:
```
PROC IMPORT OUT=work.mydata
DATAFILE="data.csv"
DBMS=csv REPLACE;
RUN;
```
2. 使用 `PROC SORT` 对数据集进行排序,以便后面选取最后150个观测:
```
PROC SORT DATA=work.mydata;
BY descending _N_;
RUN;
```
3. 使用 `DATA` 步骤选取最后150个观测,并将其保存为新数据集:
```
DATA work.newdata;
SET work.mydata (FIRSTOBS=1 OBS=150);
RUN;
```
在上述代码中,第2步中的 `_N_` 变量代表了当前数据集中的观测序号。通过对 `_N_` 变量进行倒序排序,我们就能选取最后150个观测。在第3步中,`FIRSTOBS=1` 表示从第1个观测开始选取,`OBS=150` 表示选取150个观测。最终生成的新数据集为 `newdata`。
阅读全文