В моих данных, которые я получил, отсутствовали некоторые детали.
DAY<-c("2011-01-01","2011-01-02","2011-01-04","2011-01-06")
ITEM<-c("apple","apple","apple","banana")
sale<-c("yes","no","yes","yes")
value<-c(100,200,100,500)
df <- data.frame(day=DAY,item=ITEM,sale=sale,value=value)
day item sale value
1 2011-01-01 apple yes 100
2 2011-01-02 apple no 200
3 2011-01-04 apple yes 100
4 2011-01-06 banana yes 500
↑ это мои исходные данные. но я хочу после развернуть dataframe
bind_row=NULL
bind=NULL
for(h in 1:length(unique(df$day))){
bind_day=as.character(unique(df$day)[h])
for(i in 1:length(unique(df$item))){
bind_item=as.character(unique(df$item)[i])
for(j in 1:length(unique(df$sale))){
bind_sale=as.character(unique(df$sale)[j])
bind=c(bind_day,bind_item,bind_sale)
bind_row=rbind(bind_row,bind)
}
}
}
bind_row <- cbind(bind_row,c(100,0,0,0,0,200,0,0,100,0,0,0,0,0,500,0))
bind "2011-01-01" "apple" "yes" "100"
bind "2011-01-01" "apple" "no" "0"
bind "2011-01-01" "banana" "yes" "0"
bind "2011-01-01" "banana" "no" "0"
bind "2011-01-02" "apple" "yes" "0"
bind "2011-01-02" "apple" "no" "200"
bind "2011-01-02" "banana" "yes" "0"
bind "2011-01-02" "banana" "no" "0"
bind "2011-01-04" "apple" "yes" "100"
bind "2011-01-04" "apple" "no" "0"
bind "2011-01-04" "banana" "yes" "0"
bind "2011-01-04" "banana" "no" "0"
bind "2011-01-06" "apple" "yes" "0"
bind "2011-01-06" "apple" "no" "0"
bind "2011-01-06" "banana" "yes" "500"
bind "2011-01-06" "banana" "no" "0"
как я могу сделать (преобразовать из исходных данных для расширения данных) этот dataframe в R? (или python?)
этот скрипт слишком медленный. не могли бы вы мне помочь?
спасибо.