duvida Como calculo periodo de tempo por comportamento observado no R.?
2 participantes
Página 1 de 1
duvida Como calculo periodo de tempo por comportamento observado no R.?
Ola a todos,
Como calculo periodo de tempo por comportamento observado no R. por exemplo, gostaria de saber como fazer o R calcular quantos minutos um individuo foi observado em atividade de acasalamento entre as 12.00 am do dia 17 de dezembro ate as 17.00 do dia 18. Edepois fazer um histograma do periodo de tempo por comportamento em 24 horas, e 36 horas.
alguem pode ajudar
a tabela de dados esta abaixo
Data horario inicial horario final comportamento
06/12/17 03:00 03:00 acasalamento
07/12/18 03:00 04:00 social
07/12/17 04:00 05:00 descanso
07/12/17 05:00 06:00 variado
07/12/18 00:00 01:00 acasalamento
07/12/17 01:00 02:00 social
07/12/17 02:00 02:30 descanso
07/12/18 02:30 03:30 variado
07/12/17 03:30 04:30 acasalamento
07/12/17 04:30 05:30 social
07/12/18 05:30 06:30 descanso
07/12/17 06:30 07:30 variado
07/12/17 07:30 08:30 acasalamento
07/12/18 08:30 09:30 social
07/12/17 09:30 10:30 descanso
07/12/17 10:30 11:30 variado
07/12/18 11:30 12:30 acasalamento
07/12/17 12:30 13:30 social
07/12/17 13:30 14:30 descanso
07/12/18 14:30 15:30 variado
07/12/17 15:30 15:37 acasalamento
07/12/17 15:37 15:45 social
07/12/18 15:45 16:00 descanso
07/12/17 16:00 17:00 variado
07/12/17 17:00 18:00 acasalamento
07/12/18 18:00 19:00 social
07/12/17 19:00 20:00 descanso
07/12/17 20:00 21:00 variado
07/12/18 21:00 22:00 acasalamento
07/12/17 22:00 23:00 social
07/12/17 23:00 23:59 descanso
08/12/17 00:00 01:00 variado
08/12/17 00:00 01:00 acasalamento
08/12/17 01:00 02:00 social
08/12/17 02:00 02:30 descanso
08/12/17 02:30 03:30 variado
08/12/17 03:30 04:30 acasalamento
08/12/17 04:30 05:30 social
08/12/17 05:30 06:30 descanso
08/12/17 06:30 07:30 variado
08/12/17 07:30 08:30 acasalamento
08/12/17 08:30 09:30 social
08/12/17 09:30 10:30 descanso
08/12/17 10:30 11:30 variado
08/12/17 11:30 12:30 acasalamento
08/12/17 12:30 13:30 social
08/12/17 13:30 14:30 descanso
08/12/17 14:30 15:30 variado
08/12/17 15:30 15:37 acasalamento
08/12/17 15:37 15:45 social
08/12/17 15:45 16:00 descanso
08/12/17 16:00 17:00 variado
08/12/17 17:00 18:00 acasalamento
08/12/17 18:00 19:00 social
08/12/17 19:00 20:00 descanso
08/12/17 20:00 21:00 variado
08/12/17 21:00 22:00 acasalamento
08/12/17 22:00 23:00 variado
08/12/17 23:00 23:59 acasalamento
08/12/17 00:00 01:00 social
Obrigada
Valeria
Como calculo periodo de tempo por comportamento observado no R. por exemplo, gostaria de saber como fazer o R calcular quantos minutos um individuo foi observado em atividade de acasalamento entre as 12.00 am do dia 17 de dezembro ate as 17.00 do dia 18. Edepois fazer um histograma do periodo de tempo por comportamento em 24 horas, e 36 horas.
alguem pode ajudar
a tabela de dados esta abaixo
Data horario inicial horario final comportamento
06/12/17 03:00 03:00 acasalamento
07/12/18 03:00 04:00 social
07/12/17 04:00 05:00 descanso
07/12/17 05:00 06:00 variado
07/12/18 00:00 01:00 acasalamento
07/12/17 01:00 02:00 social
07/12/17 02:00 02:30 descanso
07/12/18 02:30 03:30 variado
07/12/17 03:30 04:30 acasalamento
07/12/17 04:30 05:30 social
07/12/18 05:30 06:30 descanso
07/12/17 06:30 07:30 variado
07/12/17 07:30 08:30 acasalamento
07/12/18 08:30 09:30 social
07/12/17 09:30 10:30 descanso
07/12/17 10:30 11:30 variado
07/12/18 11:30 12:30 acasalamento
07/12/17 12:30 13:30 social
07/12/17 13:30 14:30 descanso
07/12/18 14:30 15:30 variado
07/12/17 15:30 15:37 acasalamento
07/12/17 15:37 15:45 social
07/12/18 15:45 16:00 descanso
07/12/17 16:00 17:00 variado
07/12/17 17:00 18:00 acasalamento
07/12/18 18:00 19:00 social
07/12/17 19:00 20:00 descanso
07/12/17 20:00 21:00 variado
07/12/18 21:00 22:00 acasalamento
07/12/17 22:00 23:00 social
07/12/17 23:00 23:59 descanso
08/12/17 00:00 01:00 variado
08/12/17 00:00 01:00 acasalamento
08/12/17 01:00 02:00 social
08/12/17 02:00 02:30 descanso
08/12/17 02:30 03:30 variado
08/12/17 03:30 04:30 acasalamento
08/12/17 04:30 05:30 social
08/12/17 05:30 06:30 descanso
08/12/17 06:30 07:30 variado
08/12/17 07:30 08:30 acasalamento
08/12/17 08:30 09:30 social
08/12/17 09:30 10:30 descanso
08/12/17 10:30 11:30 variado
08/12/17 11:30 12:30 acasalamento
08/12/17 12:30 13:30 social
08/12/17 13:30 14:30 descanso
08/12/17 14:30 15:30 variado
08/12/17 15:30 15:37 acasalamento
08/12/17 15:37 15:45 social
08/12/17 15:45 16:00 descanso
08/12/17 16:00 17:00 variado
08/12/17 17:00 18:00 acasalamento
08/12/17 18:00 19:00 social
08/12/17 19:00 20:00 descanso
08/12/17 20:00 21:00 variado
08/12/17 21:00 22:00 acasalamento
08/12/17 22:00 23:00 variado
08/12/17 23:00 23:59 acasalamento
08/12/17 00:00 01:00 social
Obrigada
Valeria
Valeria Andrade- Mensagens : 94
Data de inscrição : 12/03/2018
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Ola Prof Marcos,
Entao tenho pesquizado e esbarrei com o pacote Lubridate (Time Intervals / Differences) mas infelizmente nao consigo aplica-lo a minha tabela de dados como desejo. Sera que estou no caminho certo? Pois tenho que fazer o R reconhecer a coluna de datas como tal ddmmyy e fazer-lo fazer calculos com hhmm.
Sera que poderia ajudar? Entendo que vc nao da o peixe ,mas ensina a pescar, certo?
rsrsrsrs
Obrigada,
Entao tenho pesquizado e esbarrei com o pacote Lubridate (Time Intervals / Differences) mas infelizmente nao consigo aplica-lo a minha tabela de dados como desejo. Sera que estou no caminho certo? Pois tenho que fazer o R reconhecer a coluna de datas como tal ddmmyy e fazer-lo fazer calculos com hhmm.
Sera que poderia ajudar? Entendo que vc nao da o peixe ,mas ensina a pescar, certo?
rsrsrsrs
Obrigada,
Valeria Andrade- Mensagens : 94
Data de inscrição : 12/03/2018
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
ah Prof Marcos,
Eu tanbem verifique o livro ""The R Book" na parte "Dates and Times in R"..Mas continuo confusa.
Obrigada,
Valeria
Eu tanbem verifique o livro ""The R Book" na parte "Dates and Times in R"..Mas continuo confusa.
Obrigada,
Valeria
Valeria Andrade- Mensagens : 94
Data de inscrição : 12/03/2018
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Olá, Valeria, tudo bem?
Desculpe a demora!
Então, lidar com datas no R não é muito complicado, mas tenho que aprender mais sobre data e hora. Mas para adiantar, uma função simples e útil é a as.Date(). Ela pode ser usada para o R reconhecer dados de datas em diferentes formatos. Veja o exemplo a seguir:
Copie e cole no R para ver funcionando.
Já ouvi muito falar do pacote Lubridate, mas nunca cheguei a usar. Podemos dar uma olhada nele.
Vamos nos falando, e vou explorando aqui com você até acharmos a solução.
Abraços!
Desculpe a demora!
Então, lidar com datas no R não é muito complicado, mas tenho que aprender mais sobre data e hora. Mas para adiantar, uma função simples e útil é a as.Date(). Ela pode ser usada para o R reconhecer dados de datas em diferentes formatos. Veja o exemplo a seguir:
- Código:
#Criando dados de exemplo:
dados<-structure(list(Data = structure(c(7L, 2L, 4L, 3L, 1L, 6L, 5L), .Label = c("03/01/2000",
"05/06/1998", "07/12/1999", "10/02/1999", "17/05/2001", "21/07/2000",
"25/02/1998"), class = "factor"), Variável = c(4L, 10L, 10L,
9L, 2L, 1L, 2L)), .Names = c("Data", "Variável"), class = "data.frame", row.names = c(NA,
-7L))
#Confira os dados
summary(dados)
#Note como a variável Data não foi reconhecida direito.
#Corrigindo a variável Data:
dados$Data<-as.Date(dados$Data, "%d/%m/%Y")
#Agora confira de novo:
summary(dados)
Copie e cole no R para ver funcionando.
Já ouvi muito falar do pacote Lubridate, mas nunca cheguei a usar. Podemos dar uma olhada nele.
Vamos nos falando, e vou explorando aqui com você até acharmos a solução.
Abraços!
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Atualizando: parece que existe um pacote chamado chron que lida com medidas de tempo além das datas, e espiando rápido o exemplo a seguir eu achei que pode ser o que você precisa:
https://www.stat.berkeley.edu/~s133/dates.html
https://www.stat.berkeley.edu/~s133/dates.html
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Atualizando 2: talvez os objetos da categoria POSIXct sejam ainda mais práticos pra você. Veja o exemplo que parece aqui:
http://www.noamross.net/blog/2014/2/10/using-times-and-dates-in-r---presentation-code.html
Acho que se você usar o as.POSIXct() em uma coluna que tenha tudo junto, data e hora, os seus problemas estarão resolvidos! Tente mexer nisso, mas avise se tiver dificuldade, ok? Mas acho que pode ser a solução mais rápida.
http://www.noamross.net/blog/2014/2/10/using-times-and-dates-in-r---presentation-code.html
Acho que se você usar o as.POSIXct() em uma coluna que tenha tudo junto, data e hora, os seus problemas estarão resolvidos! Tente mexer nisso, mas avise se tiver dificuldade, ok? Mas acho que pode ser a solução mais rápida.
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Ola Prof Marcos,
Obrigada por responder ao meu topico.
Estou empenhada em calcular o intervalo de tempo em horas e minutos , como faria numa planilha de excel.
Como o senhor sugeriu e comenta em suas aulas, que tudo pode ser feito no R, so tem q saber como. Por isso peco sua ajuda.
Entao, infelizemnte a tabela de dados nao pode ser alterada: uma coluna para data, outra pra hora inicial, outra coluna hora hh:mm, final e o comportamento observado.
No excell pode se somar as horase minutos, mas quero fazer-lo no R.
Meu problema e que o R tem que reconhcer as datas como data e hora como hh:mm e fazerCALCULO.
e me gostria de gerar uma tabela condensada(total de horas e minutos por comportamento com os resultados
por compartamento.
Parece que o pacote lubridate, calcula time interval(mas acho q em segundos). Mas eu preciso que o R gere uma coluna, com os intervalo de tempo calculado em HH:MM
Sera que o senhor poderia dar uma olhadinha no pacote "Lubridate"?
No pacole lubridate comenta tb os seguintes funcoes
timespan Description of time span classes in lubridate
timespans Description of time span classes in lubridate
time_length Compute the exact length of a time span
time_length-method Compute the exact length of a time span
Acho que a solucao e a combinacao dessas funcoes..Mas sou incapaz de enterder como. Pode ajudar?
Obrigada,
Valeria
Obrigada por responder ao meu topico.
Estou empenhada em calcular o intervalo de tempo em horas e minutos , como faria numa planilha de excel.
Como o senhor sugeriu e comenta em suas aulas, que tudo pode ser feito no R, so tem q saber como. Por isso peco sua ajuda.
Entao, infelizemnte a tabela de dados nao pode ser alterada: uma coluna para data, outra pra hora inicial, outra coluna hora hh:mm, final e o comportamento observado.
No excell pode se somar as horase minutos, mas quero fazer-lo no R.
Meu problema e que o R tem que reconhcer as datas como data e hora como hh:mm e fazerCALCULO.
e me gostria de gerar uma tabela condensada(total de horas e minutos por comportamento com os resultados
por compartamento.
Parece que o pacote lubridate, calcula time interval(mas acho q em segundos). Mas eu preciso que o R gere uma coluna, com os intervalo de tempo calculado em HH:MM
Sera que o senhor poderia dar uma olhadinha no pacote "Lubridate"?
- Código:
difftime {base} R Documentation
Time Intervals / Differences
Description
Time intervals creation, printing, and some arithmetic. The print() method calls these “time differences”.
Usage
time1 - time2
difftime(time1, time2, tz,
units = c("auto", "secs", "mins", "hours",
"days", "weeks"))
as.difftime(tim, format = "%X", units = "auto")
## S3 method for class 'difftime'
format(x, ...)
## S3 method for class 'difftime'
units(x)
## S3 replacement method for class 'difftime'
units(x) <- value
## S3 method for class 'difftime'
as.double(x, units = "auto", ...)
## Group methods, notably for round(), signif(), floor(),
## ceiling(), trunc(), abs(); called directly, *not* as Math():
## S3 method for class 'difftime'
Math(x, ...)
Arguments
time1, time2
date-time or date objects.
tz
an optional time zone specification to be used for the conversion, mainly for "POSIXlt" objects.
units
character string. Units in which the results are desired. Can be abbreviated.
value
character string. Like units, except that abbreviations are not allowed.
tim
character string or numeric value specifying a time interval.
format
character specifying the format of tim: see strptime. The default is a locale-specific time format.
x
an object inheriting from class "difftime".
...
arguments to be passed to or from other methods.
Details
Function difftime calculates a difference of two date/time objects and returns an object of class "difftime" with an attribute indicating the units. The Math group method provides round, signif, floor, ceiling, trunc, abs, and sign methods for objects of this class, and there are methods for the group-generic (see Ops) logical and arithmetic operations.
If units = "auto", a suitable set of units is chosen, the largest possible (excluding "weeks") in which all the absolute differences are greater than one.
Subtraction of date-time objects gives an object of this class, by calling difftime with units = "auto". Alternatively, as.difftime() works on character-coded or numeric time intervals; in the latter case, units must be specified, and format has no effect.
Limited arithmetic is available on "difftime" objects: they can be added or subtracted, and multiplied or divided by a numeric vector. In addition, adding or subtracting a numeric vector by a "difftime" object implicitly converts the numeric vector to a "difftime" object with the same units as the "difftime" object. There are methods for mean and sum (via the Summary group generic), and diff via diff.default building on the "difftime" method for arithmetic, notably -.
The units of a "difftime" object can be extracted by the units function, which also has a replacement form. If the units are changed, the numerical value is scaled accordingly. The replacement version keeps attributes such as names and dimensions.
Note that units = "days" means a period of 24 hours, hence takes no account of Daylight Savings Time. Differences in objects of class "Date" are computed as if in the UTC time zone.
The as.double method returns the numeric value expressed in the specified units. Using units = "auto" means the units of the object.
The format method simply formats the numeric value and appends the units as a text string.
Note
Units such as "months" are not possible as they are not of constant length. To create intervals of months, quarters or years use seq.Date or seq.POSIXt.
See Also
DateTimeClasses.
Examples
(z <- Sys.time() - 3600)
Sys.time() - z # just over 3600 seconds.
## time interval between release days of R 1.2.2 and 1.2.3.
ISOdate(2001, 4, 26) - ISOdate(2001, 2, 26)
as.difftime(c("0:3:20", "11:23:15"))
as.difftime(c("3:20", "23:15", "2:"), format = "%H:%M") # 3rd gives NA
(z <- as.difftime(c(0,30,60), units = "mins"))
as.numeric(z, units = "secs")
as.numeric(z, units = "hours")
format(z)
No pacole lubridate comenta tb os seguintes funcoes
timespan Description of time span classes in lubridate
timespans Description of time span classes in lubridate
time_length Compute the exact length of a time span
time_length-method Compute the exact length of a time span
Acho que a solucao e a combinacao dessas funcoes..Mas sou incapaz de enterder como. Pode ajudar?
Obrigada,
Valeria
Valeria Andrade- Mensagens : 94
Data de inscrição : 12/03/2018
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Desculpe, pelo atentado a lingua portuguesa em meus textos, mas estou escrevendo por um celular super velho com uma screen minuscula. E o idioma padrao do celular nao e a lingua portuguesa aff!!
Obrigada.
Valeria
Obrigada.
Valeria
Valeria Andrade- Mensagens : 94
Data de inscrição : 12/03/2018
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Respondido durante o Webnário 4, segue o script de exemplo:
Se ainda restarem dúvidas, é só perguntar!
- Código:
#Dados de exemplo:
dados<-structure(list(Data = structure(c(1L, 7L, 9L, 6L, 5L, 10L, 4L,
2L, 8L, 3L), .Label = c("03/05/2017", "05/09/2017", "10/10/2017",
"13/08/2017", "17/07/2017", "18/06/2017", "19/05/2017", "22/09/2017",
"29/05/2017", "29/07/2017"), class = "factor"), Comportamento = structure(c(1L,
1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L), .Label = c("A", "B"), class = "factor"),
Inicio = structure(c(6L, 1L, 3L, 9L, 5L, 8L, 10L, 2L, 4L,
7L), .Label = c("09:00", "09:17", "10:00", "11:47", "12:00",
"13:00", "13:15", "14:00", "15:00", "17:00"), class = "factor"),
Fim = structure(c(6L, 1L, 3L, 9L, 4L, 8L, 10L, 2L, 5L, 7L
), .Label = c("09:15", "09:45", "11:00", "12:02", "12:32",
"13:23", "13:47", "14:32", "15:47", "17:13"), class = "factor")), class = "data.frame", row.names = c(NA,
-10L))
#Olhando o formato:
summary(dados)
#Criando a combinação data e hora:
Inicio.data<-paste(dados$Data, dados$Inicio)
Fim.data<-paste(dados$Data, dados$Fim)
#Salvando no formato no qual que o R reconhece as horas:
Inicio.novo<-as.POSIXlt(Inicio.data, format="%d/%m/%Y %H:%M")
Fim.novo<-as.POSIXlt(Fim.data, format="%d/%m/%Y %H:%M")
#Diferença em minutos:
diferença<-Fim.novo-Inicio.novo
diferença
#Dá até para fazer um gráfico:
boxplot(as.integer(diferença)~dados$Comportamento, las=1,
xlab="Comportamento", ylab="Tempo em minutos")
difftime(Fim.novo, Inicio.novo, units="hours")
difftime(Fim.novo, Inicio.novo, units="secs")
Se ainda restarem dúvidas, é só perguntar!
Re: duvida Como calculo periodo de tempo por comportamento observado no R.?
Muitissima Obrigada Prof!!!!!!! Desculpe por ter tantas perguntas!!
Valeria Andrade- Mensagens : 94
Data de inscrição : 12/03/2018
Tópicos semelhantes
» Cálculo da moda no R - respondendo dúvida do webnário 2 turma 4
» Marcando um evento do tempo no R (dúvida do webnário)
» Dúvida sobre como gerar o estimador de Kernel
» Duvida Modulo 2 turma 4.1-Como usar a minha primeira função e criar boxplot e sem atach, mas com $?
» Cálculo de estimativa da de número de amostras (delineamento)
» Marcando um evento do tempo no R (dúvida do webnário)
» Dúvida sobre como gerar o estimador de Kernel
» Duvida Modulo 2 turma 4.1-Como usar a minha primeira função e criar boxplot e sem atach, mas com $?
» Cálculo de estimativa da de número de amostras (delineamento)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos