[R] allocating factor levels

Don McKenzie dmck at u.washington.edu
Tue Mar 8 06:37:18 CET 2011


Maybe clumsy but shows the activity.  The idea is to use a numeric  
index to separate cases where Start.action is the same.

(untested)

my.data$action <- rep("set.or.haul ",20)
my.data$recnums <- c(1:20)
my.data$action[my.data$Start.action=="Start.setting" & my.data 
$recnums < 7] <- "set1"
my.data$action[my.data$Start.action=="Start.setting" & my.data 
$recnums > 12] <- "set2"
my.data$action[my.data$Start.action=="Start.hauling" & my.data 
$recnums < 13] <- "haul1"
my.data$action[my.data$Start.action=="Start.hauling" & my.data 
$recnums > 18] <- "haul2"

On 7-Mar-11, at 7:13 PM, Darcy Webber wrote:

> Dear R users,
>
> I am working on allocating the rows within a dataframe into some
> factor levels.Consider the following dataframe:
>
>                Start.action                  Start.time
> 1            Start.setting    2010-12-30 17:58:00
> 2            Start.setting    2010-12-30 18:40:00
> 3            Start.setting    2010-12-31 22:39:00
> 4            Start.setting    2010-12-31 23:24:00
> 5            Start.setting    2011-01-01 00:30:00
> 6            Start.setting    2011-01-01 01:10:00
> 7            Start.hauling    2011-01-01 07:07:00
> 8            Start.hauling    2011-01-01 14:25:00
> 9            Start.hauling    2011-01-01 21:28:00
> 10          Start.hauling    2011-01-02 03:38:00
> 11          Start.hauling    2011-01-02 09:28:00
> 12          Start.hauling    2011-01-02 14:22:00
> 13          Start.setting    2011-01-02 20:51:00
> 14          Start.setting    2011-01-02 21:33:00
> 15          Start.setting    2011-01-02 22:47:00
> 16          Start.setting    2011-01-02 23:27:00
> 17          Start.setting    2011-01-03 00:35:00
> 18          Start.setting    2011-01-03 01:16:00
> 19          Start.hauling    2011-01-03 04:31:00
> 20          Start.hauling    2011-01-03 08:57:00
>
> I am trying to assign a factor level like the one below (named
> "action") according to the sequence of setting and hauling occuring in
> the "Start.action" column. In fact, it wouldnt even need to be a
> factor or character, it could simply be numbered (i.e., the set/haul
> prefix is useless as I could simply split it afterwards).
>
>               Start.action                   Start.time   action
> 1            Start.setting    2010-12-30 17:58:00    set1
> 2            Start.setting    2010-12-30 18:40:00    set1
> 3            Start.setting    2010-12-31 22:39:00    set1
> 4            Start.setting    2010-12-31 23:24:00    set1
> 5            Start.setting    2011-01-01 00:30:00    set1
> 6            Start.setting    2011-01-01 01:10:00    set1
> 7            Start.hauling    2011-01-01 07:07:00   haul1
> 8            Start.hauling    2011-01-01 14:25:00   haul1
> 9            Start.hauling    2011-01-01 21:28:00   haul1
> 10          Start.hauling    2011-01-02 03:38:00   haul1
> 11          Start.hauling    2011-01-02 09:28:00   haul1
> 12          Start.hauling    2011-01-02 14:22:00   haul1
> 13          Start.setting    2011-01-02 20:51:00    set2
> 14          Start.setting    2011-01-02 21:33:00    set2
> 15          Start.setting    2011-01-02 22:47:00    set2
> 16          Start.setting    2011-01-02 23:27:00    set2
> 17          Start.setting    2011-01-03 00:35:00    set2
> 18          Start.setting    2011-01-03 01:16:00    set2
> 19          Start.hauling    2011-01-03 04:31:00   haul2
> 20          Start.hauling    2011-01-03 08:57:00   haul2
>
> It seems like such a simple question, yet I just cant think of how to
> implement this. Any hints or ideas on how I might achieve this would
> be much appreciated.
>
> Regards,
> Darcy
>
> ______________________________________________
> 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.

Why does the universe go to all the bother of existing?
-- Stephen Hawking

#define QUESTION ((bb) || !(bb))
-- William Shakespeare



Don McKenzie, Research Ecologist
Pacific WIldland Fire Sciences Lab
US Forest Service

Affiliate Professor
School of Forest Resources, College of the Environment
CSES Climate Impacts Group
University of Washington

desk: 206-732-7824
cell: 206-321-5966
dmck at uw.edu
donaldmckenzie at fs.fed.us



More information about the R-help mailing list