如何计算列中未知字符串的出现次数?

时间:2012-06-11 06:14:15

标签: string r count

我有另一个问题。感谢大家对R newbie的帮助和耐心!

如何计算字符串在字符串中出现的次数?例如:

MYdata <- data.frame(fruits = c("apples", "pears", "unknown_f", "unknown_f", "unknown_f"), 
                     veggies = c("beans", "carrots", "carrots", "unknown_v", "unknown_v"), 
                     sales = rnorm(5, 10000, 2500))

问题是我的真实数据集包含数千行和数百种未知的水果和未知的蔬菜。我玩“桌子()”和“水平”,但没有太大的成功。我想这比那更复杂。很棒的是有一个输出表,列出每个独特水果/蔬菜的名称以及它在列中出现的次数。任何正确方向的提示都将非常受欢迎。

谢谢,

马库斯

3 个答案:

答案 0 :(得分:10)

如果我理解你的问题,函数table()应该可以正常工作。方法如下:

table(MYdata$fruits)

   apples     pears unknown_f 
        1         1         3 
table(MYdata$veggies)

    beans   carrots unknown_v 
        1         2         2 

或在table内使用lapply

lapply(MYdata[1:2], table)
$fruits

   apples     pears unknown_f 
        1         1         3 

$veggies

    beans   carrots unknown_v 
        1         2         2 

答案 1 :(得分:3)

以下为您提供了一个数据框架,您可能会发现这些数据更易于使用或更适合您的目的:

tabs=lapply(MYdata[-3], table)
out=data.frame(item=names(unlist(tabs)),count=unlist(tabs)[],
               stringsAsFactors=FALSE)
rownames(out)=c()

print(out)

               item count
1     fruits.apples     1
2      fruits.pears     1
3  fruits.unknown_f     3
4     veggies.beans     1
5   veggies.carrots     2
6 veggies.unknown_v     2

答案 2 :(得分:1)

也许像

summary(MYdata$fruits)