У меня есть приведенный ниже кадр данных:
library lubridate
eventtime<-c("2020-02-07 22:06:00","2020-02-07 22:00:00","2020-02-07 21:46:00")
eventvalue<-c("home","work",'exit')
geof<-data.frame(eventtime,eventvalue)
Затем я собираю все его уникальные eventvalue
значения в новое.
geoun<-data.frame(unique(geof$eventvalue))
Я создаю новые кадры данных, по одному для каждого уникального eventvalue
#Create dataframes according to eventvalue
for(i in 1:nrow(geoun)){
assign(paste0(geoun[i,1]), data.frame(geof[ which(geof$eventvalue==geoun[i,1]), ]))
}
Затем я хочу повторить процесс ниже - добавление нового столбца - для каждого, используя для l oop.
#extract just the hour maker, so we can count by hour
home$EventHour <- hour(home$eventtime)
Я использую:
#Create dataframes according to eventvalue
for(i in 1:nrow(geoun)){
assign(paste0(geoun[i,1]), data.frame(geof[ which(geof$eventvalue==geoun[i,1]), ])$EventHour)<- hour(assign(paste0(geoun[i,1]), data.frame(geof[ which(geof$eventvalue==geoun[i,1]), ]))$eventtime)
}
но я получаю:
Error in assign(paste0(geoun[i, 1]), data.frame(geof[which(geof$eventvalue == :
could not find function "assign<-"
Как мне этого добиться. В чем моя ошибка?