Итак, у меня есть фрейм данных, в настоящее время я пытаюсь использовать mutate для поиска новых столбцов из текущих столбцов, уже созданных новых столбцов и нескольких статических объектов.
Пример данных:
##All
mydf<- as.data.frame(matrix(c(1,1,1,1,1,2,2,2,2,2,0,1,2,3,4,0,1,2,3,4,100,90,40,30,0,100,80,50,10,0), nrow=10, ncol=3))
colnames <- c("path","month", "Notional")
mydf<-setNames(mydf,colnames)
print(mydf)
> print(mydf)
path month Notional
1 1 0 100
2 1 1 90
3 1 2 40
4 1 3 30
5 1 4 0
6 2 0 100
7 2 1 80
8 2 2 50
9 2 3 10
10 2 4 0
Текущий код, который у меня есть
T1 <- 20
T2 <- 50
T3 <- 20
T4 <- 10
mydf<-mydf %>%
group_by(path)%>%
mutate(T1_ts = Notional - T2 - T3 - T4) %>%
mutate(T2_ts = Notional - T1_ts - T3 - T4) %>%
mutate(T3_ts = Notional - T1_ts - T2_ts - T4) %>%
mutate(T4_ts = Notional - T1_ts - T2_ts - T3_ts)
mydf[mydf < 0] <- 0
print(mydf)
Желаемый вывод:
mydf2<- as.data.frame(matrix(c(1,1,1,1,1,2,2,2,2,2,0,1,2,3,4,0,1,2,3,4,100,90,40,30,0,100,80,50,10,0,20,10,0,0,0,20,0,0,0,0,50,50,10,0,0,50,50,20,0,0,20,20,20,20,0,20,20,20,0,0,10,10,10,10,0,10,10,10,10,0), nrow=10, ncol=7))
colnames <- c("path","month", "Notional","T1","T2","T3","T4")
mydf2<-setNames(mydf2,colnames)
print(mydf2)
> print(mydf2)
path month Notional T1 T2 T3 T4
1 1 0 100 20 50 20 10
2 1 1 90 10 50 20 10
3 1 2 40 0 10 20 10
4 1 3 30 0 0 20 10
5 1 4 0 0 0 0 0
6 2 0 100 20 50 20 10
7 2 1 80 0 50 20 10
8 2 2 50 0 20 20 10
9 2 3 10 0 0 0 10
10 2 4 0 0 0 0 0
К сожалению, что я на самом делеполучить из кода это:
> print(mydf)
# A tibble: 10 x 7
# Groups: path [2]
path month Notional T1_ts T2_ts T3_ts T4_ts
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 0 100 20 50 20 10
2 1 1 90 10 50 20 10
3 1 2 40 0 50 20 10
4 1 3 30 0 50 20 10
5 1 4 0 0 50 20 10
6 2 0 100 20 50 20 10
7 2 1 80 0 50 20 10
8 2 2 50 0 50 20 10
9 2 3 10 0 50 20 10
10 2 4 0 0 50 20 10
>
Что я сделал не так?