[R] grepping with a variable trouble
arun
smartpink111 at yahoo.com
Fri Jan 17 00:45:16 CET 2014
Hi,
It's not clear about the pattern in your rownames.
In the for() loop, I guess you need rownames(df) instead of df.
Using an example dataset (Here the rownames may be different)
set.seed(59)
x <- as.data.frame(matrix(rnorm(110),ncol=2))
set.seed(24)
row.names(x) <- paste0(row.names(x),Reduce(`paste0`,lapply(1:2,function(x) sample(letters,55,replace=TRUE))))
set.seed(435)
df <- as.data.frame(matrix(sample(200,300*20,replace=TRUE),ncol=20))
set.seed(34)
row.names(df) <- paste0(sample(1:55,300,replace=TRUE),Reduce(`paste0`,lapply(1:2,function(x) sample(letters,300,replace=TRUE))))
gl1 <- sapply(rownames(x),function(i) grep(paste0(gsub("\\d+","",i),"$"),rownames(df)))
gl1[2]
#$`2fl`
#[1] 128
rownames(df[128,])
#[1] "31fl"
A.K.
Hi, I'm having trouble using grep with a variable. When I do this it works fine:
grep("^hb$", rownames(df))
[1] 9359
but what I really want to do is use the rownames of 1 data frame
(x) to extract the position of that same rowname in a larger data frame
(df). How can I do this for say all of the rownames in x? The positions
should be stored in a variable called g.
dim(x)
[1] 55 2
dim(df)
[1] 13000 19
I've tried this but it does not seem to work.
for(i in rownames(x)){
g <- grep(paste("^",i,"$",sep=""), df)
}
any ideas?
More information about the R-help
mailing list