I have data frame like this :
df <- data.frame(col1 = c(letters[1:4],"a"),col2 = 1:5,col3 = letters[10:14])
df
col1 col2 col3
1 a 1 j
2 b 2 k
3 c 3 l
4 d 4 m
5 a 5 n
I want to find the index of the column of df
that has values matching to string "a".
i.e. it should give me 1
as result.
I tried using which in sapply but its not working.
Anybody knows how to do it without a loop ??
Using index property The first option you have when it comes to accessing the index is pandas. DataFrame. index property returns the index (i.e. the row labels) of a pandas DataFrame.
But for now here's my answer: DataFrame is 2 dimensional, and its index are rows and columns (2 indexes) .
Something like this?
which(apply(df, 2, function(x) any(grepl("a", x))))
The steps are:
apply
go over each columna
is in this column with grepl
any
to get TRUE
if any element has been matched to a
which
elements (columns) are TRUE
(i.e. contain the searched letter a
).If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With