Давайте составим список фреймов данных.
df1 <- data.frame(V1=c("a", "b", "c"),V2=c("d", "e","f"), V3=c("g","h","i"),V4=c("j","k","l"))
df2 <- data.frame(V1=c("m","n"), V2=c("o","p"), V3=c("q","r"))
l <-list(df1, df2)
> l
[[1]]
V1 V2 V3 V4
1 a d g j
2 b e h k
3 c f i l
[[2]]
V1 V2 V3
1 m o q
2 n p r
В этом списке есть фрейм данных, который повернут, и имена столбцов являются элементом списка. Фрейм данных [[1]]
просто повернулся и объединил фреймы данных (см. Рисунок).
Например, столбцы V1 и V3 содержат названия столбцов, а V2 и V4 являются переменными.
Я хотел бы запустить некоторый код, который соответствует одному из элементов из фреймов данных (ele
- это вектор, содержащий имена первичного столбца):
ele <- c("a","b","c","g","h","i")
и когда он совпадает, он назначает этот элемент в качестве имени столбца и назначает элемент справа в качестве переменной для этого столбца, и, наконец, мы можем получить новый фрейм данных, например:
dfa<-data.frame(a="d")
> dfa
a
1 d
Важно: обратите внимание, что list[[2]]
не будет совпадать. Я предпочел бы выбрать метод loop / lappy и получить отдельные кадры данных, такие как dfa
, dfb
, dfc
...