查找 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)