Home > OS >  Change values smoothly over time in R
Change values smoothly over time in R

Time:07-09

I have a variable called "exposed" and I know already the sum of exposed people over time: have a look to understand

i exposed
1 y
2 y
3 y
4 n
5 n

So I have 3 exposed individuals and 2 are not.

t <- 5
#I know that each i in t :

sum(exposed[i]) <- c(3,4,1,4,5)

I created this line of code to cupture the change in data:

evol <- list()

for(i in 1:t){evol[[i]]<- df}

for (i in 2:t) {
  # condition

}

My question is : what is the condition that I have to write to have in:

evol[[1]]

a data that looks like this: | i | exposed| |:----:|:------:| | 1 | y | | 2 | y |3 | y |4 | n |5 | n

evol[[2]]

the data that looks like this: | i | exposed| |:----:|:------:| | 1 | y | | 2 | y |3 | y |4 | y |5 | n

evol[[3]]

a data that looks like this: | i | exposed| |:----:|:------:| | 1 | y | | 2 | n |3 | n |4 | n |5 | n

I hope I made it clear;

Any ideas pleas;

kind regards.

CodePudding user response:

If I'm understanding you correctly, you want a list of dataframes based on the exposed sums.

Using lapply you can do

exposed <- c(3,4,1,4,5)

evol <- lapply(exposed, \(x) data.frame(i = seq_along(exposed), exposed = c(rep("y", x), rep("n", length(exposed) - x )))  )
evol[[1]]
  i exposed
1 1       y
2 2       y
3 3       y
4 4       n
5 5       n
  • Related