2017-05-25 6 views
1

Bitte helfen Sie, ich brauche alle Einträge aus der Spalte B zu extrahieren, die gegen denjenigen erscheinen in Spalte A von einem DatenrahmenAuszug aus der 2. Spalte basierend auf String-Gehalt in der 1. Spalte

Ich brauche Spalte A zu suchen, basierend auf Zeichenfolge, die GK104 hat Das heißt, wenn die Spalte A GK104 in seiner enries hat, wird es entsprechenden Eintrag aus Spalte B

A     B 
DT-GK104-BIN1-E-A1 8000_AMKR 
DT-GK104-BIN2-E-A2 8000_ASET 
DT-GK104-BIN3-E-A1 8000_CPAC 
DT-GK104-BIN4-E-ZK 8000_PWOO 
DT-GK104-BIN5-E-ZK 8000_SPIL 
+3

'grep ("GK104", df $ A)' gibt einen Vektor der Zeilennummern, in der Spalte A enthält 'GK104'. Sie können dies verwenden, um Spalte B zu referenzieren. –

Antwort

0

Dies ist einfach zu holen. Andrew Gustar Kommentar fortzusetzen, müssen Sie nur grepl verwenden:

df <- 
"A     B 
DT-GK104-BIN1-E-A1 8000_AMKR 
DT-GK104-BIN2-E-A2 8000_ASET 
DT-GK104-BIN3-E-A1 8000_CPAC 
DT-GK104-BIN4-E-ZK 8000_PWOO 
DT-GK104-BIN5-E-ZK 8000_SPIL" 

df <- read.table(text=df, header = T, stringsAsFactors = F) 

# Save a value which you want to match 
value <- "A1" 

# You can get a filtered dataframe 
df[grepl(value, df$A),] 
        A   B 
1 DT-GK104-BIN1-E-A1 8000_AMKR 
3 DT-GK104-BIN3-E-A1 8000_CPAC 

# Or you can just get a character vector of matched values in the second column 
df$B[grepl(value, df$A)] 
[1] "8000_AMKR" "8000_CPAC" 
Verwandte Themen