【发布时间】:2014-02-25 06:17:34
【问题描述】:
我有一个名为 PSIBL_out 的 data.frame。
sallgi stext2 staxid stext3
1 hgd;te; hgh gfg;dgj;jhh AJJC
2 hf jhd hjhj hgfd
3 oui dhk kjll jhjs
我想查找列“staxids”具有多个值并用“;”分隔的所有行。对于每一行,我想查看“sallgi”列,计算“;”的次数出现并将数字放在“a”中。
The code I wrote is the following:
for(i in PSIBl_out[grep(";", PSIBl_out[,"staxids"]),])
{
a <- sum(PSIBl_out[grep(";", PSIBl_out[,"sallgi"]),])
}
我收到以下错误,我认为这是 SUM 函数:
Error in FUN(X[[1L]], ...) :
only defined on a data frame with all numeric variables
想法?
【问题讨论】:
-
我认为您的问题是您使用的是
grep而不是grepl。请务必仔细阅读这些文档以查看每个返回的内容。 -
...您正在尝试对数据框求和,这没有任何意义。要计数,请将 sum 应用于
grepl的输出。 -
是的,你是对的,我应用 sum i 的方式错误
-
我意识到的另一个错误是我如何使用 grep
-
我现在正在尝试以下操作:for(i in PSIBl_out[grep(";", PSIBl_out[,"staxids"]),]) { a
标签: r