[R] avoiding a loop?

jim holtman jholtman at gmail.com
Mon Oct 15 21:16:12 CEST 2007


?table   to count the factors

> x
[1] "a" "b" "c" "d" "e"
> paste(head(x, -1), tail(x, -1), sep='')
[1] "ab" "bc" "cd" "de"


On 10/15/07, Tom Sgouros <tomfool at as220.org> wrote:
>
> Hi All:
>
> I feel like there must be a slick R-native no-loop way to get the counts
> for the entries in a factor, but I'm unable to see how.  Right now I'm
> doing this:
>
> hn.ent<-data.frame(rep(0,length(levels(hnf))), row.names=levels(hnf))
> colnames(hn.ent)<-c("count")
> for (lev in levels(hnf)) {
>  hn.ent[lev,"count"] <- sum(lev == hnf)
> }
>
> I'm sure there's a better way, but I don't know it.  Can anyone help?
>
> Also, why does hn.ent[lev,"count"] work and hn.ent$count[lev] does not?
>
> In a related problem, I have a vector of strings, and want a vector of
> the strings combined.  That is, I have c("a", "b", "c", "d") and I want
> c("ab", "bc", "cd").  I see this is easy with numbers, but paste() is
> the only way I see to stick strings together, and I don't get how I'd
> use them without a loop.
>
> Many thanks,
>
>  -tom
>
> --
>  ------------------------
>  tomfool at as220 dot org
>  http://sgouros.com
>  http://whatcheer.net
>
> ______________________________________________
> 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 you are trying to solve?



More information about the R-help mailing list