Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problems with dplyr and POSIXlt data

Tags:

r

dplyr

posixlt

I have a problem. I downloaded data and tranformed dates into POSIXlt format

df<-read.csv("007.csv", header=T, sep=";")
df$transaction_date<-strptime(df$transaction_date, "%d.%m.%Y")
df$install_date<-strptime(df$install_date, "%d.%m.%Y")
df$days<- as.numeric(difftime(df$transaction_date,df$install_date, units = "days"))

Data frame is about transaction in one online game. It contains value (its payment), transaction_date, intall_date and ID. I added new column, which showndays after installation. I tried to summarise data using dlyr

df2<-df %>% group_by(days) %>% summarise(sum=sum(value))

And I've got an error: Error: column 'transaction_date' has unsupported type : POSIXlt, POSIXt

How can i Fix it?

UPD. I changed classes of Date columns into Character. It solved problem. But can i use dlyr withouts changing classes in my dataset?

like image 447
Slavka Avatar asked Sep 10 '25 19:09

Slavka


1 Answers

You could use as.POSIXct as recommended in the comments but if the hours, minutes, and seconds don't matter then you should just use as.Date

df <- read.csv("007.csv", header=T, sep=";")

df2 <- df %>%
  mutate(
     transaction_date = as.Date(transaction_date, "%d.%m.%Y")
     ,install_date = as.Date(install_date, "%d.%m.%Y")
  ) %>%
  group_by(days = transaction_date - install_date) %>%
  summarise(sum=sum(value))
like image 141
JackStat Avatar answered Sep 12 '25 10:09

JackStat