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 № 1Apenas 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)