【问题标题】:Function that tabulates for specific values and returns counts对特定值进行制表并返回计数的函数
【发布时间】:2023-01-25 23:01:42
【问题描述】:

假设你有一个向量x

x <- c("C", "A", "B", "B", "A", "D", "B", "B", "A", "A", "A", "A", "A", "D", "C", "A", "C", "A", "A", "C", "A", "A", "D", "A", "D", "A", "D", "A", "A", "D", "D", "B", "B", "A", "A", "C", "A", "A", "B", "B", "B", "B", "B", "B", "B", "A", "C", "A", "C", "B")

您可以使用以下方法制作表格:

table(x)
# x
#  A  B  C  D 
# 22 14  7  7

如果您只希望表包含某些值(例如“A”和“B”),或者您希望表包含 x 中可能不存在的值怎么办?

这是我的尝试:

tab_specific_values <- function(vector, values) `names<-`(rowSums(outer(values, vector, `==`)), values)

例如:

tab_specific_values(vector = x, values = c('A', 'B'))
# A  B 
# 22 14

或者如果我们指定一个在x中不存在的值

tab_specific_values(vector = x, values = c('A', 'B', 'E'))
# A  B  E 
# 22 14  0

是否有现有的专用功能可以执行此操作,或者您是否有更好的方法?我怀疑我的函数 tab_specific_values 可能不是最好的方法。

【问题讨论】:

    标签: r


    【解决方案1】:

    转换成因素具有一定的水平,那么桌子:

    #my values
    v <- c("A", "B", "E")
    
    table(factor(x, levels = v))
    #  A  B  E 
    # 22 14  0 
    

    【讨论】:

      猜你喜欢
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多