[R] Finding strings in a dataset

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Sat May 15 23:30:26 CEST 2021


You should post a working example, we have no idea what your 2d data set 
is. A matrix? A data.frame? Something else?

And the string you are looking for? Are you thinking of regular 
expressions (grep) or is it a simple equality '=='?

Here is a reproducible example of the use of ?which() with argument 
arr.ind set to TRUE.

# create a data set
A <- matrix(sample(letters, 24, TRUE), ncol = 4)

# Test for equality, this returns
# a logical matrix and which() can
# be applied to it
found <- A == "g"
which(found, arr.ind = TRUE)
#     row col
#[1,]   1   1
#[2,]   5   1
#[3,]   2   3

# The same code can be use if the data is
# a data.frame
df1 <- as.data.frame(A)
df1 == "g"

But if you want to look for a regex, try sapply. In this example the 
pattern is a simple one, and I use grepl.

pattern <- "g"
found2 <- sapply(df1, function(x) grepl(pattern, x))
which(found2, arr.ind = TRUE)

Hope this helps,

Rui Barradas

Às 18:07 de 15/05/21, Tuhin Chakraborty escreveu:
> Hi,
> How can I find the location of string data in my 2D dataset? spec(Dataset)
> will reveal the columns that contain the strings. But can I know where
> exactly the string values are in the column?
> 	[[alternative HTML version deleted]]
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list