Я читал this question в SO и задавался вопросом, есть ли способ использовать is.numeric в векторном виде. Дело в том, что если у вас есть векторизованный способ проверить, является ли переменная числовой, то любая функция, зависящая от переменной, являющейся числовой, может быть векторизованной. В противном случае он не может быть векторизован.Есть ли векторизованный способ использования is.numeric?
ответ
По комментариям:
, если вы хотите, чтобы проверить столбцы data.frame с as.numeric, используйте 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
Или, для разнообразия, вы можете использовать colwise
из plyr пакет:
> colwise(is.numeric)(dat)
v1 v2 v3 v4
1 TRUE FALSE TRUE FALSE
Пакет 'plyr' имеет функцию' numcolwise', которая автоматически может применять любую функцию к числовым столбцам в фрейме данных. – Ramnath
Это должно дать желаемый результат:
rep(is.numeric(x), length(x))
Однако, учитывая смешанный список: 'x <-list ('a', 2, 'c', 4)', это даст вектор всей 'FALSE', поскольку' is.numeric (x) 'is' FALSE' , 'lapply (x, is.numeric)' дает ожидаемые результаты. – Justin
@Justin: Я ожидал, что вход будет одной «переменной», которую я принял как атомный вектор. Для разных интерпретаций формулировки hte вопроса ваш метод может (l) применяться. –
- 1. Есть ли векторизованный способ вычисления градиента в sympy?
- 2. Есть ли другой способ использования SqlNotificationRequest?
- 3. Есть ли хороший способ использования QuickCheck Happstack.State?
- 4. Есть ли способ использования reshape в tbl?
- 5. Есть ли способ повторного использования XmlReader?
- 6. Есть ли способ повторного использования строки C#?
- 7. Есть ли другой способ использования подписанных апплетов
- 8. Есть ли СУХОЙ способ повторного использования шлюза?
- 9. Есть ли более короткий способ использования indexPath.row?
- 10. Есть ли способ ограничить ограничение использования плунжера?
- 11. Есть ли правильный способ повторного использования идентификаторов?
- 12. Есть ли «правильный» способ использования php?
- 13. Векторизованный sciPy ode solver
- 14. Есть ли систематический способ конвертировать R-код с циклами в векторизованный код?
- 15. Векторизованный доступ к массиву
- 16. векторизованный код для python
- 17. is.numeric в применить против sapply
- 18. Векторизованный searchsorted numpy
- 19. Векторизованный DataFrame Python-pandas?
- 20. MATLAB: Эффективный (векторизованный) способ применения функции на двух матрицах?
- 21. Есть ли способ отключить WKInterfaceMenu?
- 22. Векторизованный риск портфеля
- 23. Есть ли способ проверить, есть ли хост?
- 24. Векторизованный ifelse conundrum
- 25. без векторизации, векторизованный, matlab
- 26. Векторизованный выбор столбцов
- 27. R - векторизованный Mean с весовыми
- 28. Есть ли безопасный способ использования setjmp() и longjmp() в C++?
- 29. Есть ли способ напечатать массив строк без использования цикла?
- 30. Есть ли способ определить диапазон значений без использования триггера?
'is.numeric' векторизован ... можете ли вы привести пример того, о чем вы думаете? –
Я предполагаю, что вопроситель думает, что 'is.numeric (1: 5)' должен давать вектор TRUE 5 long, а не один TRUE. так что-то вроде 'sapply (1: 5, is.numeric)' – Justin
@Justin: ах, тогда ответ «нет». Вы не можете смешивать типы в атомном векторе, поэтому было бы излишним возвращать значение «TRUE» или «FALSE» для каждого элемента вектора. Вы можете смешивать типы в списке (это то, что такое data.frame), и именно там вы должны использовать свое 'sapply' решение. –