首先使用 SAS 函数对类别中的条目进行计数。并且未分类
Counting entries in a category using SAS functions first. and notsorted
我有一些按会话细分的数据 Activity,有很多会话,每个会话中有很多活动。我希望能够做的是计算一个人在每个会话中执行的活动的数量(一个人在一个会话中的两个不同时间执行相同 activity 的时间分别计算)。我正在处理的数据如下所示,计数列是我要创建的列;
data have;
input Session $ Activity $ Count;
datalines;
AAAA VVVV 1
AAAA XXXX 2
AAAA XXXX 2
AAAA YYYY 3
AAAA ZZZZ 4
AAAA XXXX 5
AAAA XXXX 5
BBBB VVVV 1
BBBB XXXX 2
BBBB YYYY 3
BBBB YYYY 3
BBBB YYYY 3
CCCC VVVV 1
CCCC VVVV 1
CCCC XXXX 2
CCCC XXXX 2
CCCC YYYY 3
CCCC ZZZZ 4
CCCC VVVV 5
CCCC XXXX 6
;
run;
我已经使用此代码计算了每个会话中的观察次数;
proc sort
data = a.input;
by session eventtime;
run;
data a.example;
set a.input;
count +1;
if first.session then count =1;
by session eventtime;
tun;
我一直在探索这种方法,首先使用嵌套的 if 语句和 SAS。函数,但是这似乎需要对数据进行排序,因为 activity 可能会在一个会话中出现多个点,我无法做到。
我的第一个想法是使用 'do' 或 'do while' 循环,但是我不确定如何设置条件,以便在未知值不变的情况下进行迭代。
非常感谢任何帮助。
谢谢!
假设您想要计算 count
变量,那么您应该可以这样做。 by
不需要排序:
data want;
set have;
by session activity notsorted;
if first.session then new_count=0;
if first.activity then new_count+1;
run;
这假定它已按您希望的方式(按事件时间)排序到此数据集中。 notsorted
告诉 by
不要担心实际的排序顺序; first
现在仅检测先前值的变化。
我有一些按会话细分的数据 Activity,有很多会话,每个会话中有很多活动。我希望能够做的是计算一个人在每个会话中执行的活动的数量(一个人在一个会话中的两个不同时间执行相同 activity 的时间分别计算)。我正在处理的数据如下所示,计数列是我要创建的列;
data have;
input Session $ Activity $ Count;
datalines;
AAAA VVVV 1
AAAA XXXX 2
AAAA XXXX 2
AAAA YYYY 3
AAAA ZZZZ 4
AAAA XXXX 5
AAAA XXXX 5
BBBB VVVV 1
BBBB XXXX 2
BBBB YYYY 3
BBBB YYYY 3
BBBB YYYY 3
CCCC VVVV 1
CCCC VVVV 1
CCCC XXXX 2
CCCC XXXX 2
CCCC YYYY 3
CCCC ZZZZ 4
CCCC VVVV 5
CCCC XXXX 6
;
run;
我已经使用此代码计算了每个会话中的观察次数;
proc sort
data = a.input;
by session eventtime;
run;
data a.example;
set a.input;
count +1;
if first.session then count =1;
by session eventtime;
tun;
我一直在探索这种方法,首先使用嵌套的 if 语句和 SAS。函数,但是这似乎需要对数据进行排序,因为 activity 可能会在一个会话中出现多个点,我无法做到。
我的第一个想法是使用 'do' 或 'do while' 循环,但是我不确定如何设置条件,以便在未知值不变的情况下进行迭代。
非常感谢任何帮助。
谢谢!
假设您想要计算 count
变量,那么您应该可以这样做。 by
不需要排序:
data want;
set have;
by session activity notsorted;
if first.session then new_count=0;
if first.activity then new_count+1;
run;
这假定它已按您希望的方式(按事件时间)排序到此数据集中。 notsorted
告诉 by
不要担心实际的排序顺序; first
现在仅检测先前值的变化。