Je lisais this question à SO et je me demandais s'il y avait un moyen d'utiliser is.numeric d'une manière vectorisée. Le point étant, si vous avez un moyen vectorisé de vérifier si une variable est numérique, alors toute fonction qui dépend de la variable étant numérique peut être vectorisée. Sinon, il ne peut pas être vectorisé.Existe-t-il un moyen vectorisé d'utiliser is.numeric?
Répondre
Selon les commentaires:
si vous cherchez à tester les colonnes d'un data.frame avec as.numeric, utilisez apply
> dat <- data.frame(v1=1:5,v2=letters[1:5],v3=rnorm(5),v4=c(1,2,'c','d',5))
> sapply(dat,is.numeric)
v1 v2 v3 v4
TRUE FALSE TRUE FALSE
Ou, pour la variété, vous pouvez utiliser colwise
de le paquet plyr:
> colwise(is.numeric)(dat)
v1 v2 v3 v4
1 TRUE FALSE TRUE FALSE
Le paquet 'plyr' a une fonction' numcolwise' qui peut automatiquement appliquer n'importe quelle fonction aux colonnes numériques d'une trame de données. – Ramnath
Cela devrait donner le résultat souhaité:
rep(is.numeric(x), length(x))
Cependant, étant donné une liste mixte: 'x <-list ('a', 2, 'c', 4)' ceci donnera un vecteur de tout 'FALSE' puisque' is.numeric (x) 'est' FALSE' . 'lapply (x, is.numeric)' donne les résultats attendus. – Justin
@Justin: Je m'attendais à ce que l'entrée soit une seule "variable" que j'ai prise pour être un vecteur atomique. Pour différentes interprétations du libellé de la question, votre méthode pourrait s'appliquer. –
- 1. Vectorisé `signal.lfilter`
- 2. Exemple avec contrainte, vectorisé
- 3. vectorisé si dans matlab
- 4. Existe-t-il un moyen plus vectorisé d'exécuter numpy.outer le long d'un axe?
- 5. réduction matrice de transition vectorisé
- 6. solution vectorisé à un échantillonnage aléatoire pour chaque ligne R
- 7. Existe-t-il un moyen systématique de convertir le code R avec des boucles en code vectorisé?
- 8. Comment afficher du texte vectorisé en utilisant libgdx?
- 9. vectorisé if-else pour plusieurs commandes de blocs
- 10. Char non signé char std :: vectorisé à unsigned char []?
- 11. Meilleur type de collection Scala pour le calcul numérique vectorisé
- 12. Comment afficher le nombre réel de chaque mot étant vectorisé
- 13. Numpy: accès vectorisé de plusieurs colonnes à la fois?
- 14. K-means pour la quantification des couleurs - Code non vectorisé
- 15. Matlab: Affectation vectorisé de matrice double à matrice de cellules
- 16. Existe-t-il un moyen vectorisé de supprimer toutes les transactions sauf le N le plus récent pour chaque ID client?
- 17. C: Ecriture de code qui peut être vectorisé automatiquement, boucle imbriquée, GCC
- 18. J'ai besoin d'identifier les valeurs non-alternance à partir d'une matrice en utilisant une méthode vectorisé
- 19. Génération des données répétitives dans numpy/pandas géants de manière vectorisé rapide
- 20. Filtrage R vectorisé et obtention de plusieurs valeurs de décalage dans une trame
- 21. Est-il possible de rendre ce code MATLAB vectorisé plus rapide?
- 22. Trouver le chemin vectorisé pour effectuer des-boucles avec le calcul entre les lignes
- 23. Comment puis-je vérifier si mon code est vectorisé ou non?
- 24. comment est-il possible de faire produire du code vectorisé par gccgo?
- 25. Un moyen efficace d'élaguer HashMap
- 26. Un moyen facile d'écrire cela?
- 27. trouver un moyen de tracer
- 28. Bon moyen d'avoir un collectionneur?
- 29. Un moyen efficace d'ajouter JMenuItems
- 30. Un moyen efficace pour SQL
'is.numeric' est vectorisé ... pouvez-vous donner un exemple de ce à quoi vous pensez? –
Je suppose que le questionneur pense que 'is.numeric (1: 5)' devrait donner un vecteur de VRAI 5 long plutôt qu'un seul VRAI. donc quelque chose comme 'spply (1: 5, is.numeric)' – Justin
@ Justin: ah, alors la réponse est "non". Vous ne pouvez pas mélanger des types dans un vecteur atomique, il serait donc redondant de retourner une valeur 'TRUE' ou' FALSE' pour chaque élément du vecteur. Vous pouvez mélanger des types dans une liste (qui est ce qu'est un data.frame), et c'est là que vous devriez utiliser votre solution 'spply'. –