Как объяснялось выше, я хотел бы использовать ИЛИ несколько столбцов и надеялся сделать это без необходимости явно ссылаться на столбцы (d$a | d$b | d$c
), а на массив столбцов имена (c(a,b,c)
)ИЛИ (или любой логический оператор) вместе много столбцов в R
ответ
(df <- data.frame(a = c(T, F, T, T), b = c(T, T, F, T), c = c(F, F, T, T)))
# a b c
# 1 TRUE TRUE FALSE
# 2 FALSE TRUE FALSE
# 3 TRUE FALSE TRUE
# 4 TRUE TRUE TRUE
Reduce(`|`, df)
# [1] TRUE TRUE TRUE TRUE
Reduce(`&`, df)
# [1] FALSE FALSE FALSE TRUE
Как я понимаю, вы хотите взять |
построчно.
d = data.frame(a = c(TRUE, FALSE), b = c(FALSE, FALSE))
# a b
# 1 TRUE FALSE
# 2 FALSE FALSE
Таким образом, ожидаемый результат здесь c(TRUE, FALSE)
.
Вы можете использовать any
по всем столбцам в d
:
apply(d, 1, any)
# [1] TRUE FALSE
именованные столбцы в d
:
apply(d[c("a", "b")], 1, any)
# [1] TRUE FALSE
соображения эффективности:
library(microbenchmark)
df <- data.frame(a = c(T, F, T, T), b = c(T, T, F, T), c = c(F, F, T, T))
microbenchmark(
Reduce = Reduce(`|`, df),
apply = apply(df, 1, any))
# Unit: microseconds
# expr min lq mean median uq max neval cld
# Reduce 6.597 8.2275 11.83880 10.0730 13.4080 36.246 100 a
# apply 56.423 59.9425 79.86748 66.8265 105.7645 178.409 100 b
Да, я бы предпочел «Уменьшить» здесь. – effel
Почему? 'any' * is * a' Reduce' над оператором '' \ \ '(возможно, более эффективно реализовано). Хотя, правда, 'any' нужно применять, в то время как \' \ \ "может естественным образом векторизовать. –
Да, в концепции. «Уменьшить» на самом деле быстрее. С другой стороны, 'apply' with' any', вероятно, более читабельна и идиоматична. – effel
- 1. Python логический оператор или
- 2. VBA «Любой» логический оператор
- 3. Логический оператор Для Или
- 4. ИЛИ логический оператор в Баш
- 5. логический оператор ИЛИ против побитового ИЛИ оператора
- 6. Логический оператор ИЛИ проблема: jQuery
- 7. Оператор IF игнорирует или не принимает логический оператор «или»
- 8. Попытка использовать логический или оператор в Eval
- 9. Python логический или оператор, действующий странно
- 10. Логический оператор ИЛИ для получения значения
- 11. Логический И/или Оператор - Неожиданный конец Результат
- 12. python: логический или побитовый оператор AND
- 13. Перевести Java Логический оператор в R
- 14. Логический ИЛИ логический ИЛИ смущенный java?
- 15. Используя оператор ИЛИ в R
- 16. Это быстрее: много строк или много столбцов?
- 17. R заменить логический вектор «on» или «off»
- 18. логический ИЛИ в MySQL
- 19. логический ИЛИ побитовый ИЛИ сменный?
- 20. python, регулярные выражения, именованные группы и оператор «логический» или «0»
- 21. Как применить логический оператор ИЛИ в некоторых элементах списка?
- 22. Преобразование && (логического и) оператора в || (логический или) оператор
- 23. Множественный логический оператор || (ИЛИ) условия для цикла в C
- 24. Или логический оператор, не работающий в [NSPredicate predicateWithFormat:]
- 25. PHP логический ИЛИ оператор в инструкции IF ELSE
- 26. логический или оператор не ведет себя, как ожидалось
- 27. логический или | Unix
- 28. В MYSQL, лучше ли иметь много строк или много столбцов?
- 29. Использование! (или любой логический оператор) с%>% (magrittr) производит неожиданный вывод
- 30. swift NSPredicate логический ИЛИ
А на части ДФ: 'Уменьшить (" | ", df [, c ('a', 'b')])' – Heroka
Домашние животные с м ine: используйте обратные ссылки, а не кавычки, вокруг оператора (\ '| \' и т. д.). R принимает кавычки, но это идиот: мы хотим здесь функцию * name *, а не строку символов, и это разные вещи. –