У меня, казалось бы, очень простая задача, но я не могу понять, что делаю не так. У меня есть список из 3 тибблей Xx2 (в примере 2x2), имеющих вектор символов и целочисленный вектор. Я хочу преобразовать его в список из 3 именованных векторов, где буквы - это векторные элементы, а числа - это имена. Вот мой подход:
tbl <- tibble(numbers=c(1:2), letters=letters[1:2])
vec_names <- c("name1", "name2", "name3")
lst <- list(tbl, tbl, tbl)
names(lst) <- vec_names
lst_n <- lapply(lst, function(x) x[["letters"]])
lst_n <- sapply(vec_names,
function(x) names(lst_n[[x]]) <- lst[[x]]$numbers)
Я получаю такой результат
lst_n
name1 name2 name3
[1,] 1 1 1
[2,] 2 2 2
и я не вижу своей ошибки. Делает
names(lst_n[["name1"]]) <- lst[["name1"]]$numbers
дает мне именно то, что я хочу для "name1", но почему он не работает с sapply?
У меня был [] раньше, и я изменил его на [[]], чтобы получить доступ к таблицам внутри списка, а не к элементам списка, но это все еще не работает. Кто-нибудь может помочь? Это кажется очень простой задачей.
lapply(lst, function(x) x[["letters"]])
, это простоlapply(lst, "[[", "letters")
- person Gregor Thomas   schedule 02.10.2018