An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20090313/c64456f5/attachment-0002.pl>
Taking diff of character vectors
2 messages · Mark Leeds, Sergey Goriatchev
Fabulous, guys! Let me try your suggestions. Thanks a lot! Best, SErgey
On Fri, Mar 13, 2009 at 11:53, <markleeds at verizon.net> wrote:
Hi:
For A, you can use head and tail but you have to add a zero the front.
For B, you can use the same function, but put it inside an sapply and run
over the columns and then cbind it back with the original dataframe.
A)
nm2 <- c(rep("SPZ8", 10), rep("SPX9", 10))
-1.0*c(0,as.numeric((head(nm2,-1) != tail(nm2,-1))))
B)
nm3 <- c(rep("GLF9", 4), rep("GLF10", 16))
matr <- cbind(nm2, nm3)
temp<-as.data.frame(sapply(1:ncol(matr), function(.col) {
-1.0*c(0,as.numeric((head(matr[,.col],-1) != tail(matr[,.col],-1))))
}))
cbind(matr,temp)
On Fri, Mar 13, 2009 at? 5:24 AM, Sergey Goriatchev wrote:
Hello, everybody
Say I have
nm1 <- c(rep(1,10), rep(0,10))
then I can do:
diff(nm1)
to see where I have shift in value
but what if I have
nm2 <- c(rep("SPZ8", 10), rep("SPX9", 10))
how can I produce the same ouput as diff(nm1) does, that is zeros
everywhere except for one place where SPZ8 changes to SPX9 (there
should be 1 there)?
What if I have a matrix of characters like that:
nm3 <- c(rep("GLF9", 4), rep("GLF10", 16))
matr <- cbind(nm2, nm3)
How can I efficiently create two more columns that contain zeros
everywhere except for place where there is shift in character values?
Thanks for help!
Sergey
--
I'm not young enough to know everything. /Oscar Wilde
Experience is one thing you can't get for nothing. /Oscar Wilde
When you are finished changing, you're finished. /Benjamin Franklin
Tell me and I forget, teach me and I remember, involve me and I learn.
/Benjamin Franklin
Luck is where preparation meets opportunity. /George Patten
______________________________________________ R-help at r-project.org??mailing list 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.
I'm not young enough to know everything. /Oscar Wilde Experience is one thing you can't get for nothing. /Oscar Wilde When you are finished changing, you're finished. /Benjamin Franklin Tell me and I forget, teach me and I remember, involve me and I learn. /Benjamin Franklin Luck is where preparation meets opportunity. /George Patten