В качестве примера приведены следующие данные.
Data<-c("a","d","c","b","d","a","d","b","c","b","a","b","d","c","b","a","c","d","d","c")
Мне нужно выяснить, сколько раз a Я создал al oop (используя 4 функции IF), но это занимает много времени, когда у нас большой набор данных. С этим l oop ответ 47 раз.
Есть ли эффективный способ сделать это в R.
Вот моя попытка, но она очень медленная, когда говорят, что у нас более 4 букв и большой набор данных.
Data<-c("a","d","c","b","d","a","d","b","c","b","a","b","d","c","b","a","c","d","d","c")
set.seed(123)
Data0<-sort(sample(1:100,20))
df<-data.frame(Data,Data0)
A<-df[Data=="a",2]
B<-df[Data=="b",2]
C<-df[Data=="c",2]
D<-df[Data=="d",2]
myfun<-function(A,B,C,D){
b0<-0
f0<-0
for (i in 1:length(A)){
for (j in 1:length(B)){
for (k in 1:length(C)){
for (l in 1:length(D)){
f0<-f0+sum(A[i]<B[j])*sum(B[j]<C[k])*sum(C[k]<D[l])
}}}}
return(f0)
}
myfun(A,B,C,D)
Большое спасибо