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