Pakrijen uit R Data Frame op basis van factoren (snaren)

Sorry als dit een duplicaat is, maar ik kan de informatie nergens anders op vinden, ook al lijkt het zoiets een eenvoudig probleem. Ik heb een gegevensframe met verschillende kolommen als factoren. Sommige van dat zijn gehele getallen en sommige zijn snaren. Ik zou graag de rijen willen extraheren die overeenkomen met een bepaalde factor. Bijvoorbeeld,

my_data <- read.table(file = "my_data.txt", header = TRUE)
my_data[ my_data$age == 20, ]

Dit werkt, maar als ik dan

probeer

my_data[ my_data$gender == "male", ]

Dit produceert geen overeenkomsten. Ik besefte dat ze niet hetzelfde zijn, als het controleren van de klasse van my_data$name[1]geeft factor, terwijl ik het tegen een string controleer.

Alle ideeën Wat doe ik hier verkeerd?

Cheers

Gegevenssample:
Grootte leeftijd genderwaarde
1 20 man 0,5
4 22 vrouw 0.7
3 14 vrouw 0.3


Antwoord 1, Autoriteit 100%

Probeer de subsette gebruiken.

Deze site biedt een goede referentie:
HOWTOINR

my_data = subset(my_data, gender == "male")

Antwoord 2, Autoriteit 30%

Dit is een antwoord op een oude vraag, maar ik wil graag mijn huidige manier delen om dingen te doen waar fouten zoals deze veel minder gebeurt.

Het antwoord is de data.tablepakket. Het heeft me honderden regels code opgeslagen en zal dit blijven doen. Subsiting wordt een fluitje van een cent:

my_data <- data.table(my_data)
my_data[gender == "male" & age <= 20]

Ik kan zoveel conditionals gebruiken als ik wil, en ook .SDgebruiken om kolommen als argumenten door te geven aan functies, zoals:

my_data[gender == "male" & age <= 20, lapply(.SD, mean), by = c("nationality", "height")]

Het maken van kolommen op basis van bestaande kolommen is veel eenvoudiger, zelfs meerdere kolommen tegelijk maken

Other episodes