On Jun 17, 2012, at 7:19 AM, capital_P wrote:


Rui Barradas wrote

It's stringsAsFactors = FALSE, just one '='.

sapply(dat, length)

It should return 4 times the value 34773.

use dput()


it worked!

dat2 <- data.frame(dat, stringsAsFactors = FALSE)

sapply(dat2, length)
device_info_serial               hour               time
            34773              34773              34773
           tripID
            34773

dput(head(dat2, 20))
structure(list(device_info_serial = c(121L, 121L, 121L, 121L,
121L, 121L, 121L, 121L, 121L, 121L, 121L, 121L, 121L, 121L, 121L,
121L, 121L, 121L, 121L, 121L), hour = c(10L, 11L, 11L, 11L, 11L,
11L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L,
12L, 13L), time = structure(c(1242896364, 1242896671, 1242897111,
1242897399, 1242897686, 1242897978, 1242898281, 1242898589, 1242898916, 1242899253, 1242899542, 1242899835, 1242901122, 1242901902, 1242902199,
1242902489, 1242902807, 1242903096, 1242903402, 1242903708), class =
c("POSIXct",
"POSIXt"), tzone = ""), tripID = c(3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L)), .Names =
c("device_info_serial",
"hour", "time", "tripID"), row.names = c(NA, 20L), class = "data.frame")


departures <- lapply(split(dat2, list(dat2$device_info_serial,
dat2$tripID)), function(x) x[x$time == min(x$time),])

That's going to remove a lot of rows.


Now I have a new problem:

I need to make a histogram of the hours (in this case, their time of
departure), for the whole population and for each bird seperately.

Since you are not telling us what columns correspond to those concepts, I'm going to use the terms you are. Something along the lines of:

require(lattice)
histogram( ~ hours | bird,  data=dat2, nint =24 , xlim=c(0,24))
histogram( ~ hours ,        data=dat2,  nint =24 , xlim=c(0,24))



Before, I used this:

hist(active$hour, breaks = 24, xlim=c(0,24))

and:

b121 <- active[which(active$device_info_serial == 121),]
b130 <- active[which(active$device_info_serial == 130),]
b132 <- active[which(active$device_info_serial == 132),]
b133 <- active[which(active$device_info_serial == 133),]
etc.

But now there are no departures$device_info_serial or departures$hour,
because departures is a list, not a data frame.


The result on that example was just a list with one element, a dataframe.

> str(departures)
List of 1
 $ 121.3:'data.frame':  1 obs. of  4 variables:
  ..$ device_info_serial: int 121
  ..$ hour              : int 10
  ..$ time              : POSIXct[1:1], format: "2009-05-21 04:59:24"
  ..$ tripID            : int 3

So to get what you might have expected

> dep <- departures[[1]]
> dep
  device_info_serial hour                time tripID
1                121   10 2009-05-21 04:59:24      3


But since you didn't actually describe what you did want (or if you did you left upthread), its only a guess.

I've tried:

dep <- data.frame(departures, stringsAsFactors = FALSE)
Error in data.frame(`121.1` = list(device_info_serial = integer(0), hour =
integer(0),  :
 arguments imply differing number of rows: 0, 1, 2

Learn to use str().


dep <- data.frame(departures)
Error in data.frame(`121.1` = list(device_info_serial = integer(0), hour =
integer(0),  :
 arguments imply differing number of rows: 0, 1, 2

--
View this message in context: 
http://r.789695.n4.nabble.com/noob-requesting-help-tp4632803p4633637.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@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.

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to