我有这样伯爵出现并排除失踪
aa<-structure(c("AABB", "AABB", NA, "AABB", "AABB", "AABB", "AABB",
"AABB", "AABB", "AABB", "AAAA", "AAAA", NA, "AAAA", "AAAA", "AAAA",
"AAAA", "AAAA", "AAAA", "AAAA", "BBBB", NA, NA, NA, "AAAA", "AAAA",
NA, NA, NA, NA, "AAAA", NA, NA, NA, "AAAA", "BBBB", NA, NA, NA,
NA, "AABB", NA, NA, NA, "AABB", "AAAA", NA, NA, NA, NA, "AAAA",
"AAAA", "AAAA", "BBBB", "AAAA", "BBBB", "BBBB", "BBBB", "BBBB",
"BBBB", "AABB", "AABB", "AABB", "AAAA", "AABB", "AAAA", "AABB",
"AAAA", "AAAA", "AAAB", "BBBB", "BBBB", NA, "AABB", "AABB", "AABB",
"AABB", "AABB", "AABB", "AABB", "AAAA", "AAAA", NA, "AAAA", "AAAA",
"AAAA", "AAAA", "AAAA", "AAAA", "AAAA", "BBBB", "BBBB", NA, "BBBB",
"BBBB", "AAAA", "AAAA", "BBBB", "BBBB", "ABBB"), .Dim = c(10L, 10L))
的数据集我想在每个计算“A”。我尝试了2种方法。
str_count
stringr
包装。
> apply(aa,2,str_count,"A")
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 2 4 0 4 2 4 2 0 4 0
[2,] 2 4 1 1 1 4 2 0 4 0
[3,] 1 1 1 1 1 4 2 1 1 1
[4,] 2 4 1 1 1 0 4 2 4 0
[5,] 2 4 4 4 2 4 2 2 4 0
[6,] 2 4 4 0 4 0 4 2 4 4
[7,] 2 4 1 1 1 0 2 2 4 4
[8,] 2 4 1 1 1 0 4 2 4 0
[9,] 2 4 1 1 1 0 4 2 4 0
[10,] 2 4 1 1 1 0 3 2 4 1
这里我得到1
的缺失。但我喜欢有NA
和regex
dosage<-function(string,char){
x<-sapply(regmatches(string, gregexpr(char, string)), length)
return(x)
}
apply(aa,2,dosage,"A")
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 2 4 0 4 2 4 2 0 4 0
[2,] 2 4 0 0 0 4 2 0 4 0
[3,] 0 0 0 0 0 4 2 0 0 0
[4,] 2 4 0 0 0 0 4 2 4 0
[5,] 2 4 4 4 2 4 2 2 4 0
[6,] 2 4 4 0 4 0 4 2 4 4
[7,] 2 4 0 0 0 0 2 2 4 4
[8,] 2 4 0 0 0 0 4 2 4 0
[9,] 2 4 0 0 0 0 4 2 4 0
[10,] 2 4 0 0 0 0 3 2 4 1
在这里我得到0
,但我又喜欢有NA
。
我该怎么做?
你可以只更换'回报(X)'和'ifelse(is.na(串),NA,X)'和'的功能dosage'将工作,只要你想 – rawr
@rawr是的,这个工作... – Ananta
你的'apply'函数给了我预期的输出 – Jaap