У меня есть следующий вложенный список:
# Nested list
df <- list(
list(
x = seq(0,100, length.out = 1500),
y = seq(0,500, length.out = 1500),
z = sort(rep(letters[1:2], length.out = 1500))),
list(
x = seq(0,100, length.out = 1480),
y = seq(0,500, length.out = 1480),
z = sort(rep(letters[1:2], length.out = 1480)))
)
, где я интерполирую значения y
во втором списке, чтобы они были такой же длины, как значения y
в первом списке.Тогда результаты будут выглядеть следующим образом:
# Nested list
df <- list(
list(
x = seq(0,100, length.out = 1500),
y = seq(0,500, length.out = 1500)),
list(
x = seq(0,100, length.out = 1500),
y = seq(0,500, length.out = 1500))
)
Проблема в том, что после интерполяции я теряю значения символов z
.Теперь я хочу mutate
или cbind
вернуть этого персонажа.Я могу легко сделать это для первого списка, так как он не изменил свою длину.Однако для второго списка мне нужно mutate
моих персонажей a
и b
на основе значений x
, которые у них были раньше.
Например, если a
имел max
x
значение 48,5, мне нужно mutate
a
, чтобы быть в новом списке до 48,5.
Есть предложения?
PS: я не могу получитьz
из первого списка и просто поместите во второй список, так как мой реальный список намного больше, чем этот, и все они отличаются.
EDIT
Моя интерполяция выполняется с помощью следующегофункция:
mylist <- df[[2]]
interp <- approxfun(mylist$x,mylist$y)(seq(0,100,length.out = 1500))