У меня есть список факторов и начальное базовое число (т.е. 100), я хотел бы умножить основание на коэффициент 1, чтобы заполнить первую факторизованную позицию, а затем иметь возможность использовать первую позицию и умножить ее намножитель 2, выведите его и умножьте результат на коэффициент 3, выведите соответственно. Пожалуйста, смотрите пример данных и код ниже для деталей.
Пример данных:
base <- 100
myList3 <- list()
myList3[[1]]<- as.data.frame(matrix(c(1,1,1,1,2,3,1,0.9,0.8), nrow=3, ncol=3))
myList3[[2]]<- as.data.frame(matrix(c(2,2,2,1,2,3,1,0.8,0.7), nrow=3, ncol=3))
myList3[[3]]<- as.data.frame(matrix(c(3,3,3,1,2,3,1,0.8,0.9), nrow=3, ncol=3))
colnames <- c("path","month", "factor")
factor<-lapply(myList3, setNames,colnames)
print(factor)
> print(factor)
[[1]]
path month factor
1 1 1 1.0
2 1 2 0.9
3 1 3 0.8
[[2]]
path month factor
1 2 1 1.0
2 2 2 0.8
3 2 3 0.7
[[3]]
path month factor
1 3 1 1.0
2 3 2 0.8
3 3 3 0.9
Попытка написать функцию, не работает
Function <- function(x,y) {
for (k in 2:100){
x[1,3] <- base
x[k,3] <- x[k-1,3]*y[k,3]
}
return(x)
}
x <- lapply(Function,x,y)
Желаемый вывод:
myList3 <- list()
myList3[[1]]<- as.data.frame(matrix(c(1,1,1,1,2,3,100,90,72), nrow=3, ncol=3))
myList3[[2]]<- as.data.frame(matrix(c(2,2,2,1,2,3,100,80,56), nrow=3, ncol=3))
myList3[[3]]<- as.data.frame(matrix(c(3,3,3,1,2,3,100,80,72), nrow=3, ncol=3))
colnames <- c("path","month", "data")
data<-lapply(myList3, setNames,colnames)
print(data)
> print(data)
[[1]]
path month data
1 1 1 100
2 1 2 90
3 1 3 72
[[2]]
path month data
1 2 1 100
2 2 2 80
3 2 3 56
[[3]]
path month data
1 3 1 100
2 3 2 80
3 3 3 72