计算唯一变量的出现次数

Mar*_*sen -2 statistics r count

我有一个变量的数据框,有些出现不止一次,例如:a,b,b,b,c,c,d,e,f我想得到一个输出(在两列中),如下所示:a 1; b 3; c 2; d 1; e 1; f 1.奖金问题:如果变量在计数列中出现的次数小于'n'次,我希望将变量命名为某事(例如,如果少于2次,则为"其他").

Fra*_*ank 5

制表和折叠

你的示例向量是

vec <- letters[c(1,2,2,2,3,3,4,5,6)]
Run Code Online (Sandbox Code Playgroud)

要获得制表,请使用

tab <- table(vec)
Run Code Online (Sandbox Code Playgroud)

要折叠不常用的项目(例如,计数低于2),请使用

res <- c(tab[tab>=2],other=sum(tab[tab<2]))
# b     c other 
# 3     2     4 
Run Code Online (Sandbox Code Playgroud)

显示两列

resdf <- data.frame(count=res)
#       count
# b         3
# c         2
# other     4
Run Code Online (Sandbox Code Playgroud)

从技术上讲,这里的"第一列"是行标签,可以访问rownames(resdf).

类似的选择包括:

  • stack(res) 两个实际列
  • data.frame(count=sort(res,decreasing=TRUE)) 排序

在所有这些中,tab或者c(tab)可以用来代替res.