我的数据如下所示:
Row 1 Row 2 Row 3 Row 4 Row 5 Row 6 Row7
abc89 abc62 67 abc513 abc512 abc81 abc10
abc6 pop abc11 abc4 giant 13 abc15
abc90 abc16 abc123 abc33 abc22 abc08 9
111 abc15 abc72 abc36 abc57 abc9 abc55
我想计算数据框中以“abc”开头的单元格的百分比。例如:这里总共有 28 个单元格。这可以通过 prod(dim(df))
获得。所以我需要以“abc”开头的单元格数量,然后除以 prod(dim(df))
。这里的答案是 0.785。这如何在 R 中完成?
最佳答案
我会使用:
> mean(grepl("^abc",unlist(dat)))
[1] 0.7857143
使用 mean
意味着您不必自己分别获取分子和分母。 grepl
是 grep
的逻辑版本——每当 "^abc"
(即字符串以 abc
) 开头。 Recall伯努利向量的平均值是成功的百分比。
如果您想按行或按列执行此操作,您可以使用 apply
,例如apply(dat,1,function(x)mean(grepl("^abc",x)))
获取逐行均值。
关于r - 如何计算数据框中以 R 中的序列开头的单元格百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31775978/