/ / Como filtrar uma tabela por um valor na linha - r, matriz

Como filtrar uma tabela por um valor na linha - r, matriz

Eu estou fazendo um script em r que carregam alguns dados de um csv Arquivo. SO eu usuário esta função para carregar meus dados

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

e meus dados parecem com estes

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

Como filtrar apenas as linhas que contêm "C" ou "A" ou ambas ou qualquer outra string?

Respostas:

2 para resposta № 1

Apenas para A, você pode tentar:

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

ou usando o subset() comando:

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

Para A ou C, você pode usar o %in% operador: data.AC <- data[data$b %in% c("A", "C"), ]ou data.AC <- subset(data, b %in% c("A", "C"))


2 para resposta № 2

se os dados forem um data.frame, você pode fazer

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

para obter todas as linhas com C na coluna B


2 para resposta № 3

No dplyr pacote tomamos este formulário:

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

Então, aqui está com um conjunto de dados real. Mas dplyr é mais sobre tarefas relacionadas ao desempenho. Se tudo que você realmente quer é pegar algumas linhas de um pequeno conjunto de dados, provavelmente não é a melhor resposta aqui.

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)