如何在SAS中的数组索引中使用列的值

时间:2019-03-14 14:28:01

标签: arrays sas subset

我想基于一组列中的列值来对数据集进行子集化。

例如, 我想按let databaseRef = Database.database().reference() databaseRef.child("wordList").queryOrderedByKey().observeSingleEvent(of: .childAdded, with: { snapshot in let word = (snapshot.value as? NSDictionary)!["word"] as? String let wordType = (snapshot.value as? NSDictionary )!["wordType"] as? String self.posts.insert(postStruct(word: word, wordType: wordType), at: 0) DispatchQueue.main.async { wordsTableView.reloadData() } }) > 50子集数据集,但我有10个年龄列,范围从age-age1。另外,还有一个名为age10的列(值从1到10),它告诉我应基于哪一列对该值进行子集设置。

假设我的identifier列值为5,我应该检查identifier列中的值是否大于50。

这是我尝试过的,但是没有用。

age5

1 个答案:

答案 0 :(得分:1)

由诸如age1 -- age10之类的位置变量列表表示的变量列表可能与诸如age1 - age10之类的简单枚举列表所表示的变量列表完全不同。前者查找AGE1和AGE10之间的所有变量按位置。它可以包含2个变量或200个变量。它可能包括一些字符变量。

如果需要AGE1,AGE2,...,AGE10,则可以列出变量或指定尺寸。如果您没有以某种方式列出实际的变量名,那么它只会在数组名称后附加一个索引号以生成该数组的变量名。

array age age1-age10;
array age[10] ;

如果您是腰带和吊带类型的人,则可以指定尺寸和特定的变量名称。

array age[10] age1-age10;

您可能还需要检查IDENTIFIER是否为有效索引。

if identifier in (1:10) then if not age(identifier)>50 then delete;