У меня есть большой CSV с результатами медицинского обследования из разных мест (местоположение является фактором, присутствующим в данных). Поскольку некоторые анализы относятся к конкретному месту и для удобства, я бы хотел извлечь подкадры со строками только из этих мест. Бывает, что расположение - это самое первое поле, так что да, я мог бы сделать это, отсортировав строки CSV, но я хотел бы узнать, как это сделать в R, так как я уверен, что это понадобится для других столбцов.
Итак, в двух словах, вопрос: учитывая фрейм данных foo, Как я могу создать еще одну строку фрейма данных, которая содержит только строки из foo, где foo $ location = 'there'
?
Вот два основных подхода. Я предпочитаю этот вариант из-за его удобочитаемости:
bar <- subset(foo, location == "there")
Обратите внимание, что вы можете объединить многие условные выражения с помощью &
и |
для создания сложных подмножеств.
Второй - это метод индексации. Вы можете индексировать строки в R с помощью числовых или логических срезов. foo $ location == "there"
возвращает вектор значений T
и F
, имеющий ту же длину, что и строки foo
. Вы можете сделать это, чтобы возвращать только те строки, в которых условие возвращает true.
foo[foo$location == "there", ]