Innehållsförteckning:
- Hur man hittar en match
- Ett mycket bekvämt alternativ för att matcha () är funktionen% i%, vilket ger en logisk vektor som indikerar om det finns en matchning.
Video: Rethinking infidelity ... a talk for anyone who has ever loved | Esther Perel 2024
Ibland gör det inte precis vad du vill ha en fullständig sammanfogning av data i R. I dessa fall kan det vara mer lämpligt att matcha värden i ett uppslagstabell. För att göra detta kan du använda matchningen () eller% i% -funktionen.
Hur man hittar en match
Matchen () -funktionen returnerar matchningspositionerna för två vektorer eller mer specifikt positionerna för de första matcherna i en vektor i den andra vektorn. Till exempel, för att hitta vilka stora stater som också uppträder i dataramen kallt. stater kan du göra följande:
Som du ser är resultatet en vektor som anger att matcher hittades i positionerna ett, fyra, fem, och sex. Du kan använda detta resultat som ett index för att hitta alla stora stater som också är kalla tillstånd.
Tänk på att du måste ta bort NA-värdena först med hjälp av na. utelämna (): >> stor. stater [na. omit (index),] Namnområde 2 Alaska 566432 6 Colorado 103766 26 Montana 145587 28 Nevada 109889
Hur man känner av% i%
Ett mycket bekvämt alternativ för att matcha () är funktionen% i%, vilket ger en logisk vektor som indikerar om det finns en matchning.
Funktionen% i% är en speciell typ av funktion som heter enbinär operatör.
Detta innebär att du använder det genom att placera det mellan två vektorer, till skillnad från de flesta andra funktioner där argumenten ligger inom parentes: >> indexindex [1] SANT SANT FALSK FALS SANT FEL FALSK FALSK FALSK FALSK FALSK Om du jämför det här med resultatet av matchen () ser du att du har ett TRUE värde för varje icke-saknat värde i resultatet av matchen (). Eller, för att uttrycka det i R-kod, gör operatören% i% samma som följande kod:
Matchen () -funktionen returnerar indexerna för matcherna i
andra
argumentet för värdena i argumentetförsta
. Å andra sidan returnerar% i% TRUE för varje värde i argumentet första som matchar ett värde i argumentet second . Argumentets ordning är viktigt här. Eftersom% i% returnerar en logisk vektor kan du använda den direkt till indexvärden i en vektor. >> kallt. stater [index,] Namn Frost 2 Alaska 152 6 Colorado 166 26 Montana 155 28 Nevada 188 Som tidigare nämnts är% i% -funktionen ett exempel på en binär operatör i R. Det betyder att funktionen används genom att sätta det mellan två värden, som du skulle för andra operatörer, som + (plus) och - (minus). Samtidigt är% i% i infix operatör. En infixoperatör i R är identifierbar med procenttecknen runt funktionsnamnet.
Om du vill veta hur% i% har definierats, titta på detaljerna på sidan Hjälp. Men observera att du måste placera anteckningsmärken runt funktionsnamnet för att få hjälpsidan, så här:? "%i%".