I have a dataframe
structure(list(Brand = c("AB", "AC", "AD", "BA", "CB", "CK"), `&TV` = c("0_640",
"0", "1_340", "0", "0", "0"), `&TV HD` = c("1_500", "0", "0_140",
"0", "0", "0")), row.names = c(NA, 6L), class = "data.frame")
that looks like this:
Brand &TV &TV HD
1 AB 0_640 1_500
2 AC 0 0
3 AD 1_340 0_140
4 BA 0 0
5 CB 0 0
6 CK 0 0
I want to return the row and column value of those cells that has the pattern 1_
in it. For the above example, I want to return
row col
3 2
1 3
I am trying to use grep but was not very successful.
grep(New_Brands_Theme_Combine[,c(1:length(New_Brands_Theme_Combine))], pattern = "1_")
The above gives me the column numbers of the data frame where the pattern is found. How do I get the column numbers along with the row numbers.
One option is loop over the columns of interest ('colnm'), apply the grep
to get the position index, set the names
of the list
with the column index and stack
it to a two column data.frame
colnm <- 2:3
out <- stack(setNames(lapply(df1[colnm], grep, pattern = "1_"), colnm))
names(out) <- c("row", "col")
out
# row col
#1 3 2
#2 1 3
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