首页 > 解决方案 > 如何计算数据帧行中某些字符串的频率?

问题描述

我是一个 R 初学者,我有一个巨大的数据框,所以这里是数据框的一个小复制品。

我想计算每个数据框行的“U”和“A”的百分比。

不是每个字母都出现在每一行中,所以简单的 prop.table 函数并没有给我想要的输出。当每行中没有提供所有 4 个字母时,我遇到了问题。

    ####Here is my sample dataset:
    a <- c("A","B","H","U","U","U")
    b <- c("A","H","H","U","U","U")
    c <- c("B","B","H","U","U","U")
    d <- c("H","H","H","U","U","U")
    e <- c("U","U","U","U","U","U")
    data<-data.frame(a,b,c,d,e)

我希望每一行都有一个“A”和“U”的百分比。如果这些字母之一没有出现在该行中,则结果可能是 NA。

标签: rdataframe

解决方案


我们可以用rowMeans

rowMeans(data == "A" | data == "U", na.rm = TRUE)
#[1] 0.5 0.0 0.0 1.0 1.0 1.0

推荐阅读