R中的沮丧新手问题:
假设我有一个字符串列表=(“a”,“b”,“c”),以及一个列为df $ stuff的数据框。
我想遍历列表中的每个字符串,计算字符串在df $ stuff中出现的次数,并累加它。换句话说,“a”出现的次数加上出现“b”的次数加上出现“c”的次数。我尝试过count,table和aggregate函数,我得到的只是错误。
必须有一个很好的干净方法。
答案 0 :(得分:0)
如果没有您的数据样本以及您想要输出的内容,很难回答这个问题,但我会尝试。首先,我将猜测您的数据是什么样的:
df <- data.frame(stuff = sample(letters[1:5], 30, replace = TRUE))
strings <- letters[1:3]
要获得strings
中df[["stuff"]]
的计数,您可以使用table
,然后使用strings
索引到表中。
table(df[["stuff"]])[strings]
答案 1 :(得分:0)
我对被问到的内容有不同的看法。所以我也会试一试。
strings = c("a", "b", "c")
stuff = c("the cat", "the bat", "the dog")
sapply(strings, function(s) length(grep(s, stuff)))
a b c
2 1 1
获取每个字符串的匹配数。所以
sum(sapply(strings, function(s) length(grep(s, stuff))))
为您提供所有这些的总和。
这就是你想要的吗?