通过子集化或使用%in%查找长度

时间:2015-07-13 10:17:49

标签: r

我有一个data.frame" df":

df

  id.number         names
1        102  Program ID 1
2        102  Program ID 1
3         11  Program ID 1
4         11  Program ID 1
5       1293  Program ID 1
6       1293  Program ID 1
7        132  Program ID 1
8        143  Program ID 1
9        143  Program ID 1
10       143  Program ID 1
11       143 Program ID 22
12       143 Program ID 22
13       143 Program ID 22
14       155 Program ID 22
15       155 Program ID 22
16      1552 Program ID 22
17      1553 Program ID 22

矢量:name_1 <- "Program ID 1"

现在我想找到&#34; id.number&#34;的唯一长度。通过&#34;计划ID 1&#34;并通过与向量"name_1"匹配。 我可以找到&#34; id.number&#34;的唯一长度。通过&#34;计划ID 1&#34;与

length(unique(id.number[names=="Program ID 1"]))

但我希望通过将我的矢量与列#34;名称&#34;匹配来找到独特的长度。在data.frame&#34; df&#34;。

所以我需要(并希望)使用类似的东西:

length(unique(subset(....)

length(unique(subset .... %in% names_1

我的输出应该是列中的唯一长度/(数字)&#34; id.number&#34;并且 data table 也不 list

期望的输出:  只是数字,在我的情况下,这是: 5 这也是代码length(unique(id.number[names=="Program ID 1"])).

的结果

1 个答案:

答案 0 :(得分:1)

如评论中所述,您只需将处理向量的代码包装成with(df, ...)语句:

with(df, length(unique(id.number[names=="Program ID 1"])))

或者概括为name_1包含多个名称的情况:

with(df, length(unique(id.number[names%in%name_1])))