在 R 数据框列中查找存在 n 次的值。


要查找在 R 数据框列中存在 n 次的值,我们首先需要使用 factor 对该列进行制表,然后提取该列的水平,之后使用 as.numeric 读取它们。

查看下面给出的示例,了解如何实现。

示例 1

以下代码片段创建了一个示例数据框 -

x<-rpois(20,1)
df1<-data.frame(x)
df1

创建了以下数据框

   x
1  2
2  0
3  1
4  1
5  1
6  0
7  0
8  1
9  5
10 2
11 1
12 0
13 1
14 2
15 0
16 0
17 0
18 0
19 1
20 2

要在上面创建的数据框中查找 df1 的 x 列中存在 7 次的值,请将以下代码添加到上述代码片段中 -

x<-rpois(20,1)
df1<-data.frame(x)
as.numeric(levels(factor(df1$x))[tabulate(factor(df1$x))==7])

输出

如果将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

[1] 1

示例 2

以下代码片段创建了一个示例数据框 -

y<-sample(0:5,20,replace=TRUE)
df2<-data.frame(y)
df2

创建了以下数据框

  y
1  4
2  1
3  0
4  5
5  2
6  1
7  0
8  0
9  3
10 2
11 2
12 1
13 2
14 2
15 2
16 1
17 1
18 1
19 3
20 2

要在上面创建的数据框中查找 df2 的 y 列中存在 2 次的值,请将以下代码添加到上述代码片段中 -

y<-sample(0:5,20,replace=TRUE)
df2<-data.frame(y)
as.numeric(levels(factor(df2$y))[tabulate(factor(df2$y))==2])

输出

如果将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

[1] 3

示例 3

以下代码片段创建了一个示例数据框 -

z<-round(rnorm(20),0)
df3<-data.frame(z)
df3

创建了以下数据框

   z
1  -1
2   2
3  -1
4   1
5   1
6  -2
7  -1
8  -1
9   0
10  0
11  1
12  1
13 -1
14  0
15  1
16  0
17  0
18  0
19 -1
20  0

要在上面创建的数据框中查找 df3 的 z 列中存在 6 次的值,请将以下代码添加到上述代码片段中 -

z<-round(rnorm(20),0)
df3<-data.frame(z)
as.numeric(levels(factor(df3$z))[tabulate(factor(df3$z))==6])

输出

如果将上面给出的所有代码片段作为单个程序执行,它将生成以下输出 -

numeric(0)

更新于: 2021-11-05

132 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告