У меня есть список из двух фреймов данных df1 and df2
. Каждый фрейм данных содержит три столбца val1 val2 and bb
. В bb
вложен другой список из 2 с четырьмя столбцами - см. tail(my.list$df1, n=3)
ниже.
Когда я экспортирую с использованием write.csv
, все столбцы присутствуют в файле .csv
, и вывод выглядит точно так же, как tail(my.list$df1, n=3)
. Тем не менее, я хотел бы - из-за отсутствия лучших терминов - переместить столбцы bb.dn bb.mavg bb.up bb.pctB
на один уровень вверх, чтобы я мог вызывать, манипулировать и / или объединять столбцы bb.dn bb.mavg bb.up bb.pctB
с другими фреймами данных или списками в моем код.
Воспроизводимый:
library(TTR)
library(tidyverse)
library(plyr)
# reproducible example
set.seed(1363)
d1 <- data.frame(val1 = c(rnorm(n=65, mean=15)), val2 = c(rnorm(n=65,
mean=15)))
d2 <- data.frame(val1 = c(rnorm(n=35, mean=12)), val2 = c(rnorm(n=35,
mean=25)))
my.list <- list(df1 = d1, df2 = d2)
for (i in seq_along(my.list)) {
my.list[[i]] <- my.list[[i]] %>%
mutate(bb = BBands(val2, n = 20, sd = 2))
}
Это структура фрейма данных 2 в my.list
:
> str(my.list$df2)
'data.frame': 35 obs. of 3 variables:
$ val1: num 11.1 11.4 10.9 13.9 12.6 ...
$ val2: num 25.1 25.7 24.6 25.2 26 ...
$ bb : num [1:35, 1:4] NA NA NA NA NA NA NA NA NA NA ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : chr "dn" "mavg" "up" "pctB"
Это список в «списке из 2», который содержит 4 столбца, которые я хотел бы поднять на один уровень вверх:
> tail(my.list$df1, n=3)
val1 val2 bb.dn bb.mavg bb.up bb.pctB
63 16.29825 15.64776 13.4178099 15.3927881 17.3677663 0.5645507
64 15.89625 14.77928 13.4214305 15.3943781 17.3673258 0.3441171
65 12.59590 15.43764 13.4202751 15.3533071 17.2863391 0.5218149
>