查找 R 数据框列中出现 n 次的值。

r programmingserver side programmingprogramming更新于 2025/4/9 12:37:17

要查找 R 数据框列中出现 n 次的值,我们首先需要使用因子对列进行制表,然后提取列的级别,最后使用 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)

相关文章