/ / Як фільтрувати таблицю за значенням у рядку - r, матриці

Як фільтрувати таблицю за значенням у рядку - r, матриці

Я роблю сценарій у r які завантажують деякі дані з csv файл. Так що я користувач ці функції для завантаження даних

data <- read.csv("info.csv",colClasses = "character")

і мої дані виглядають так

a   b   c   d   ...
1   "A"   3   4   ...
5   "B"   7   8   ...
9   "C"   7   4   ...
9   "C"   2   5   ...
9   "A"   1   6   ...

Як можна фільтрувати лише рядки, які містять "C" або "A" або обидва або будь-який інший рядок?

Відповіді:

2 для відповіді № 1

Лише A можна спробувати:

data.Aonly <- data[data$b == "A", ]

або за допомогою subset() команда:

data.Aonly <- subset(data, b == "A")

Для або A або C можна використовувати %in% оператор: data.AC <- data[data$b %in% c("A", "C"), ], або data.AC <- subset(data, b %in% c("A", "C"))


2 для відповіді № 2

якщо дані - це data.frame, ви можете це зробити

data[data$b == "C",]

щоб отримати всі рядки з C у них у стовпці B


2 для відповіді № 3

В dplyr ми приймаємо цю форму:

data %.% filter(b == "A")   ## OR...
filter(data, b == "A")

Ось тут і справжній набір даних. Але dplyr більше стосується виконання завдань. якщо все, що ви дійсно хочете, це захопити деякі рядки з невеликого набору даних, це, мабуть, не найкраща відповідь тут.

library(dplyr)
filter(mtcars, gear == 4) # OR...
tbl_df(mtcars) %.% filter(gear == 4)
tbl_df(mtcars) %.% filter(gear == 3)
tbl_df(mtcars) %.% filter(gear %in% 3:4)