data.frame上的和返回错误
我有一个名为PSIBL_out的data.framedata.frame上的和返回错误,r,R,我有一个名为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 stext2 staxid stext3
1 hgd;te; hgh gfg;dgj;jhh AJJC
2 hf jhd hjhj hgfd
3 oui dhk kjll jhjs
我想查找列“staxids”中有多个值的所有行,用“;”分隔。对于每一行,我想查看“sallgi”列,计算“;”出现的次数,并将数字放在“a”中
想法?你的问题仍然有点不清楚(顺便说一句,你应该通过编辑来澄清你的问题,而不是留下评论!) 但我猜你想要这样的东西:
library(stringr)
> dat <- read.table(text = "sallgi stext2 staxid stext3
+ 1 hgd;te; hgh gfg;dgj;jhh AJJC
+ 2 hf jhd hjhj hgfd
+ 3 oui dhk kjll jhjs",header = TRUE,sep = "")
> str_count(dat$sallgi[grepl(";",dat$staxid)],";")
[1] 2
库(stringr)
>dat str_计数(dat$sallgi[grepl(“;”,dat$staxid)],“;”)
[1] 2
但是,从您的问题中不清楚您是要为原始数据帧中的每一行计数,还是只为那些带有
的行计数代码>出现在statxid
列中。我认为您的问题在于您使用的是grep
而不是grepl
。一定要仔细阅读上面的文档,看看每个文档都返回了什么……而你试图对数据帧求和,这毫无意义。为了计数,您将sum应用于grepl
的输出。是的,您是对的,我以错误的方式应用sum I。我意识到的另一个错误是我如何使用grepI。我正在尝试以下操作:for(I in-PSIBl_out[grep(;),PSIBl_out[,“statxids”],){谢谢你提供的编辑技巧,我一直在寻找类似的东西,但直到你指出,我才看到。是的,我只想计算那些在staxid列上应用grep返回的行
Error in FUN(X[[1L]], ...) :
only defined on a data frame with all numeric variables
library(stringr)
> dat <- read.table(text = "sallgi stext2 staxid stext3
+ 1 hgd;te; hgh gfg;dgj;jhh AJJC
+ 2 hf jhd hjhj hgfd
+ 3 oui dhk kjll jhjs",header = TRUE,sep = "")
> str_count(dat$sallgi[grepl(";",dat$staxid)],";")
[1] 2