When I do that, I get "Error in `$<-.data.frame`(`*tmp*`, "site", value = integer(0)) : replacement has 0 rows, data has 6? The data frame has 6 rows. Ken kmnanus at gmail.com 914-450-0816 (tel) 347-730-4813 (fax)> On Mar 3, 2016, at 4:52 PM, Herv? Pag?s <hpages at fredhutch.org> wrote: > > Hi, > > On 03/03/2016 12:18 PM, KMNanus wrote: >> I have a factor variable that is 6 digits and hyphenated. For example, 001-014. >> >> I need to extract the first 3 digits to a new variable using mutate in dplyr - in this case 001 - but can?t find a function to do it. >> >> substr will do this for character strings, but I need the variable to remain as a factor. > > What prevents you from calling as.factor() on the result to turn it > back into a factor? > > H. > >> >> Is there an R function or workaround to do this? >> >> >> Ken >> kmnanus at gmail.com >> 914-450-0816 (tel) >> 347-730-4813 (fax) >> >> >> >> ______________________________________________ >> R-help at 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. >> > > -- > Herv? Pag?s > > Program in Computational Biology > Division of Public Health Sciences > Fred Hutchinson Cancer Research Center > 1100 Fairview Ave. N, M1-B514 > P.O. Box 19024 > Seattle, WA 98109-1024 > > E-mail: hpages at fredhutch.org > Phone: (206) 667-5791 > Fax: (206) 667-1319
On 03/03/2016 02:13 PM, KMNanus wrote:> When I do that,When you do what exactly? It's impossible for anyone here to know what you're doing if you don't show the code.> I get "Error in `$<-.data.frame`(`*tmp*`, "site", value > = integer(0)) : > replacement has 0 rows, data has 6? > > The data frame has 6 rows.You said you had a factor variable, you never mentioned you had a data.frame. If the factor variable is part of a data.frame 'df', then first extract it with something like df$myvar or df[["myvar"]], and then call substr() followed by as.factor() on it. H.> > Ken > kmnanus at gmail.com <mailto:kmnanus at gmail.com> > 914-450-0816 (tel) > 347-730-4813 (fax) > > >> On Mar 3, 2016, at 4:52 PM, Herv? Pag?s <hpages at fredhutch.org >> <mailto:hpages at fredhutch.org>> wrote: >> >> Hi, >> >> On 03/03/2016 12:18 PM, KMNanus wrote: >>> I have a factor variable that is 6 digits and hyphenated. For >>> example, 001-014. >>> >>> I need to extract the first 3 digits to a new variable using mutate >>> in dplyr - in this case 001 - but can?t find a function to do it. >>> >>> substr will do this for character strings, but I need the variable to >>> remain as a factor. >> >> What prevents you from calling as.factor() on the result to turn it >> back into a factor? >> >> H. >> >>> >>> Is there an R function or workaround to do this? >>> >>> >>> Ken >>> kmnanus at gmail.com <mailto:kmnanus at gmail.com> >>> 914-450-0816 (tel) >>> 347-730-4813 (fax) >>> >>> >>> >>> ______________________________________________ >>> R-help at 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. >>> >> >> -- >> Herv? Pag?s >> >> Program in Computational Biology >> Division of Public Health Sciences >> Fred Hutchinson Cancer Research Center >> 1100 Fairview Ave. N, M1-B514 >> P.O. Box 19024 >> Seattle, WA 98109-1024 >> >> E-mail: hpages at fredhutch.org <mailto:hpages at fredhutch.org> >> Phone: (206) 667-5791 >> Fax: (206) 667-1319 >-- Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fredhutch.org Phone: (206) 667-5791 Fax: (206) 667-1319
Let me see if I can ask the question more clearly - I am trying to extract a section of a hyphenated factor. For example, 001-004 is one observation of test$ken, which is a factor, and I want to set up a new factor variable called place that would have 001 as an observation. If I call mutate(place = (as.character (test$ken)), I can extract 001 from 001-004, but but don't know how to subsequently convert that character string back into a factor. Or can 001 be extracted from a factor as a factor? Do you know how to execute either of these approaches? Ken kmnanus at gmail.com 914-450-0816 (tel) 347-730-4813 (fax)> On Mar 3, 2016, at 8:33 PM, Herv? Pag?s <hpages at fredhutch.org> wrote: > > On 03/03/2016 02:13 PM, KMNanus wrote: >> When I do that, > > When you do what exactly? > > It's impossible for anyone here to know what you're doing if you > don't show the code. > >> I get "Error in `$<-.data.frame`(`*tmp*`, "site", value >> = integer(0)) : >> replacement has 0 rows, data has 6? >> >> The data frame has 6 rows. > > You said you had a factor variable, you never mentioned you had a > data.frame. If the factor variable is part of a data.frame 'df', > then first extract it with something like df$myvar or df[["myvar"]], > and then call substr() followed by as.factor() on it. > > H. > >> >> Ken >> kmnanus at gmail.com <mailto:kmnanus at gmail.com> >> 914-450-0816 (tel) >> 347-730-4813 (fax) >> >> >>> On Mar 3, 2016, at 4:52 PM, Herv? Pag?s <hpages at fredhutch.org >>> <mailto:hpages at fredhutch.org>> wrote: >>> >>> Hi, >>> >>> On 03/03/2016 12:18 PM, KMNanus wrote: >>>> I have a factor variable that is 6 digits and hyphenated. For >>>> example, 001-014. >>>> >>>> I need to extract the first 3 digits to a new variable using mutate >>>> in dplyr - in this case 001 - but can?t find a function to do it. >>>> >>>> substr will do this for character strings, but I need the variable to >>>> remain as a factor. >>> >>> What prevents you from calling as.factor() on the result to turn it >>> back into a factor? >>> >>> H. >>> >>>> >>>> Is there an R function or workaround to do this? >>>> >>>> >>>> Ken >>>> kmnanus at gmail.com <mailto:kmnanus at gmail.com> >>>> 914-450-0816 (tel) >>>> 347-730-4813 (fax) >>>> >>>> >>>> >>>> ______________________________________________ >>>> R-help at 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. >>>> >>> >>> -- >>> Herv? Pag?s >>> >>> Program in Computational Biology >>> Division of Public Health Sciences >>> Fred Hutchinson Cancer Research Center >>> 1100 Fairview Ave. N, M1-B514 >>> P.O. Box 19024 >>> Seattle, WA 98109-1024 >>> >>> E-mail: hpages at fredhutch.org <mailto:hpages at fredhutch.org> >>> Phone: (206) 667-5791 >>> Fax: (206) 667-1319 >> > > -- > Herv? Pag?s > > Program in Computational Biology > Division of Public Health Sciences > Fred Hutchinson Cancer Research Center > 1100 Fairview Ave. N, M1-B514 > P.O. Box 19024 > Seattle, WA 98109-1024 > > E-mail: hpages at fredhutch.org > Phone: (206) 667-5791 > Fax: (206) 667-1319