Hi,
I have a dataframe that has a column of vectors that I need to extract off
the character string before the first '.' character and put it into a
separate column. I thought I could use 'strsplit' for it within
'transform', but I can't seem to get the right invocation. Here is
a sample
dataframe that has what I have, what I want, and what I get. Can someone
tell me how to get what is in the 'want' column from the 'have'
column
programatically?
tia,
Matt
df <- data.frame(have=c("a.b.c", "d.e.f",
"g.h.i"), want=c("a","d","g"))
df.xform <- transform(df, get=strsplit(as.character(have),
split=".",
fixed=TRUE)[[1]][1])
df.xform
[[alternative HTML version deleted]]
try this:> dfhave want 1 a.b.c a 2 d.e.f d 3 g.h.i g> df$get <- gsub("^([^.]+).*", "\\1", df$have) > dfhave want get 1 a.b.c a a 2 d.e.f d d 3 g.h.i g g On Mon, Oct 25, 2010 at 12:53 PM, Matthew Pettis <matthew.pettis at gmail.com> wrote:> Hi, > > I have a dataframe that has a column of vectors that I need to extract off > the character string before the first '.' character and put it into a > separate column. ?I thought I could use 'strsplit' for it within > 'transform', but I can't seem to get the right invocation. ?Here is a sample > dataframe that has what I have, what I want, and what I get. ?Can someone > tell me how to get what is in the 'want' column from the 'have' column > programatically? > > tia, > Matt > > df <- data.frame(have=c("a.b.c", "d.e.f", "g.h.i"), want=c("a","d","g")) > df.xform <- transform(df, get=strsplit(as.character(have), split=".", > fixed=TRUE)[[1]][1]) > df.xform > > ? ? ? ?[[alternative HTML version deleted]] > > ______________________________________________ > 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. >-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?
On Mon, Oct 25, 2010 at 12:53 PM, Matthew Pettis <matthew.pettis at gmail.com> wrote:> Hi, > > I have a dataframe that has a column of vectors that I need to extract off > the character string before the first '.' character and put it into a > separate column. ?I thought I could use 'strsplit' for it within > 'transform', but I can't seem to get the right invocation. ?Here is a sample > dataframe that has what I have, what I want, and what I get. ?Can someone > tell me how to get what is in the 'want' column from the 'have' column > programatically? > > tia, > Matt > > df <- data.frame(have=c("a.b.c", "d.e.f", "g.h.i"), want=c("a","d","g")) > df.xform <- transform(df, get=strsplit(as.character(have), split=".", > fixed=TRUE)[[1]][1]) > df.xform >Try replacing the dot [.] and everything thereafter .* with nothing "" like this: transform(df, want = sub("[.].*", "", have)) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com