У меня есть столбик с переменными / столбцами, которые включают списки элементов разной формы. Я хотел бы добавить переменную / столбец к каждому (под) столбцу в одной из переменных.
например. такие данные
library("tibble")
aaa <- tibble(qq = c(1,2,3),
ww = list(tibble(a = c(1,2), s = c("as", "df")),
tibble(a = 3, s ="q"),
tibble(a = 4, s = "e")),
ee = list(tibble(a = c(1,2), s = c("as", "df")),
tibble(a = c(3,6), s = c("qz", "wz")),
tibble(a = 4, s = "ez")))
Который выглядит как:
> aaa
# A tibble: 3 x 3
qq ww ee
<dbl> <list> <list>
1 1.00 <tibble [2 × 2]> <tibble [2 × 2]>
2 2.00 <tibble [1 × 2]> <tibble [2 × 2]>
3 3.00 <tibble [1 × 2]> <tibble [1 × 2]>
и
> aaa$ee
[[1]]
# A tibble: 2 x 2
a s
<dbl> <chr>
1 1.00 as
2 2.00 df
[[2]]
# A tibble: 2 x 2
a s
<dbl> <chr>
1 3.00 qz
2 6.00 wz
[[3]]
# A tibble: 1 x 2
a s
<dbl> <chr>
1 4.00 ez
Допустим, я хочу создать новую переменную в каждой tibble
в aaa$ee
с именем lll
, которая является первой буквой каждой строки в переменной s
в этой таблице.
Я могу получить их с помощью lapply
, например ::
lll <- lapply(X = aaa$ee,
FUN = function(z){substr(z$s, 1,1)})
В результате
> lll
[[1]]
[1] "a" "d"
[[2]]
[1] "q" "w"
[[3]]
[1] "e"
Но как мне связать каждый вектор в этом списке как столбец в каждом tibble
в aaa$ee
?
Чтобы получить результат, который должен выглядеть примерно так:
> aaa$ee
[[1]]
# A tibble: 2 x 2
a s
<dbl> <chr> <chr>
1 1.00 as a
2 2.00 df d
[[2]]
# A tibble: 2 x 2
a s
<dbl> <chr> <chr>
1 3.00 qz q
2 6.00 wz w
[[3]]
# A tibble: 1 x 2
a s
<dbl> <chr> <chr>
1 4.00 ez e