Я роблю сценарій у 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)