Попался с логическим индексированием и "который" в R
6210 просмотра
2 ответа
Есть ли в R обстоятельства, когда использование which
индексации нельзя смешивать с логическим индексированием в R? Кажется, я вспомнил, что встречался с этими двумя несколько месяцев назад - что-то со вкусом R, поддерживающим некоторое внутреннее представление о номере строки, и это не очень хорошо сочеталось с использованием «which» после того, как я использовал логическое индексирование в другом месте. отбросить несколько строк.
Это известное явление или мне снилось все это?
Автор: dwh Источник Размещён: 05.07.2019 11:43Ответы (2)
10 плюса
Имейте в виду, что NA и другие подобные записи могут запутать ситуацию. Следующий пример @ mdsumner:
> x <- c(1:10,NA,NaN,Inf)
> x > 5
[1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE NA NA
[13] TRUE
> x[x > 5]
[1] 6 7 8 9 10 NA NA Inf
> x[which(x > 5)]
[1] 6 7 8 9 10 Inf
Автор: nullglob
Размещён: 14.06.2011 08:27
6 плюса
which
возвращает порядковые номера для выбора элементов из вектора или срезов из матрицы / массива или data.frame, и они не могут быть «смешаны» с логическими векторами
Рассмотрим логический вектор для всех чисел> 5 в этом векторе:
x <- 1:10
x > 5
[1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
Это логический вектор из 10 элементов, но эквивалент которого () имеет длину 5:
который (x> 5) [1] 6 7 8 9 10
Нет ничего сложного в том, что нельзя смешивать эти вещи, они просто не идут вместе. Первый неявно отбрасывает первые пять элементов и сохраняет последние пять благодаря сопоставлению позиций между данными и логическим вектором
x[x > 5]
а второй явно выбирает только последние пять элементов
x[which(x > 5)]
Результат тот же, но аргумент оператора «[» в каждом случае совершенно разный. Это применяется независимо от того, являются ли выбранные элементы одноэлементными значениями в векторе или строками в data.frame
.
Вопросы из категории :
- r Как получить доступ к последнему значению в векторе?
- r Пакеты оптимизации для R
- r Есть ли у R такие операторские операции, как Perl qw ()?
- r Библиотека / инструмент для рисования тройных / треугольных графиков
- r Участки без заголовков / надписей в R
- r Расчет скользящей средней
- indexing Как работает индексация базы данных?
- indexing Как индексировать столбец базы данных
- indexing Как проверить, существует ли индекс для поля таблицы в MySQL?
- indexing Получить индекс n-го вхождения строки?
- indexing Скопировать таблицу (включая индексы) в postgres
- indexing Внешние ключи индексируются автоматически в SQL Server?
- which Попался с логическим индексированием и "который" в R
- which csh script: check if command exists
- which Как я могу найти файл / каталог, который может быть где-нибудь в командной строке Linux?
- which Используя magrittr и который
- which dplyr override all but the first occurrences of a value within a group
- which Какая проблема с загрузкой браузера