Фильтровать строки data.frame по логическому условию

Абсолютно. Когда никто не будет знать низкого уровня, кто обновит и запишет высокоуровневые языки? Кроме того, когда Вы понимаете низкоуровневый материал, можно записать более эффективный код на высокоуровневом языке, и также отладить более эффективно.

145
задан Henrik 3 December 2017 в 22:39
поделиться

3 ответа

Чтобы выбрать строки в соответствии с одним 'cell_type' (например, 'hesc'), используйте == :

expr[expr$cell_type == "hesc", ]

Чтобы выбрать строки в соответствии с два или более разных 'cell_type' (например, 'hesc' или 'bj fibroblast'), используйте % в% :

expr[expr$cell_type %in% c("hesc", "bj fibroblast"), ]
197
ответ дан 23 November 2019 в 22:46
поделиться

Используйте подмножество (для интерактивного использования)

subset(expr, cell_type == "hesc")
subset(expr, cell_type %in% c("bj fibroblast", "hesc"))

или лучше dplyr :: filter ()

filter(expr, cell_type %in% c("bj fibroblast", "hesc"))
84
ответ дан 23 November 2019 в 22:46
поделиться

Причина, по которой expr [expr [2] == 'hesc'] не работает, заключается в том, что для кадра данных, x [y] выбирает столбцы, а не строки. Если вы хотите выбрать строки, вместо этого измените синтаксис x [y,] :

> expr[expr[2] == 'hesc',]
  expr_value cell_type
4   5.929771      hesc
5   5.873096      hesc
6   5.665857      hesc
32
ответ дан 23 November 2019 в 22:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: