Nouveau à R alors posez des questions basiques et stupides. J'espère que je pourrais apprendre de tous les maîtres expérimentés ici et est devenu quelqu'un qui pourrait être utile à tous les autres experts en données aussi bien dans un proche avenir.La bonne façon d'utiliser% in% dans la fonction d'application
Mon objectif est de vérifier chaque ligne de test
si id
est répertorié dans id_lag
dans la même ligne. Mon exemple de code est comme suit:
test <- as.data.frame(matrix(NA,10,3))
names(test) <- c("Year","id","id_lag")
test[,1] <- c(2011,2012,2013,2010,2014,2015,2016,2010,2011,2012)
test[,2] <- c(76,560,342,7908,200,23,23,890,780,150)
test[,3] <- c("76,89","209,2000,400","342,333,234","908,888","","23","8097,5678","12","780,209","150,4504")
involved <- function(id,id_lag)
{
a <- return(id %in% scan(what = "", sep = ",",text = id_lag))
return(a)
}
check <- apply(test, 1, function(x,y) involved(test$id,test$id_lag))
J'attends 1 de 10 liste comme TRUE
ou FALSE
si elle listé dans cette ligne ou non. Cependant, je reçois une matrice 10 par 10 avec TRUE
ou FALSE
qui a balayé toute la liste 10 fois. Y a-t-il un moyen que je peux éliminer cette fonction d'application seulement balayer à travers la ligne plutôt que faire l'analyse complète de la liste entière? Ou y a-t-il une meilleure approche, disons data.tables etc, qui fonctionnerait?
Merci,
Anne
Serait explorer plus sur la famille de fonction d'application. Merci! – Anne