Size: a a a

R (язык программирования)

2020 December 09

R

R in R (язык программирования)
Спасибо
источник

ИП

Иван Поздняков... in R (язык программирования)
кстати, а есть ли какая-нибудь готовая функция, чтобы превращать сложные списки в длинные датафреймы в таком виде:

> l0 <- list("a", "b", list("c", "d"))

> l0 [[1]] [1] "a"  

[[2]] [1] "b"  

[[3]] [[3]][[1]] [1] "c"  

[[3]][[2]] [1] "d"  

> data.frame(l1 = c(1, 2, 3, 3), l2 = c(NA, NA, 1, 2), value = c("a", "b", "c", "d"))  

l1 l2 value
1 NA     a
2 NA     b
3  1     c
3  2     d
источник

IY

Igor Yakubovskiy in R (язык программирования)
Иван Поздняков
кстати, а есть ли какая-нибудь готовая функция, чтобы превращать сложные списки в длинные датафреймы в таком виде:

> l0 <- list("a", "b", list("c", "d"))

> l0 [[1]] [1] "a"  

[[2]] [1] "b"  

[[3]] [[3]][[1]] [1] "c"  

[[3]][[2]] [1] "d"  

> data.frame(l1 = c(1, 2, 3, 3), l2 = c(NA, NA, 1, 2), value = c("a", "b", "c", "d"))  

l1 l2 value
1 NA     a
2 NA     b
3  1     c
3  2     d
do.call("rbind", list)
не работает?
или это только для простых списков?
источник

ИП

Иван Поздняков... in R (язык программирования)
не, это не то немного

> do.call(rbind, l0)      [,1] [,2] [1,] "a"  "a"  [2,] "b"  "b"  [3,] "c"  "d"
источник

ИП

Иван Поздняков... in R (язык программирования)
Суть именно в том, чтобы разложить список на длинный датафрейм, где дерево списка становится колонками датафрейма, а данные в списке становятся плоской list column в датафрейме
источник

a

aGricolaMZ in R (язык программирования)
Иван Поздняков
кстати, а есть ли какая-нибудь готовая функция, чтобы превращать сложные списки в длинные датафреймы в таком виде:

> l0 <- list("a", "b", list("c", "d"))

> l0 [[1]] [1] "a"  

[[2]] [1] "b"  

[[3]] [[3]][[1]] [1] "c"  

[[3]][[2]] [1] "d"  

> data.frame(l1 = c(1, 2, 3, 3), l2 = c(NA, NA, 1, 2), value = c("a", "b", "c", "d"))  

l1 l2 value
1 NA     a
2 NA     b
3  1     c
3  2     d
источник

IY

Igor Yakubovskiy in R (язык программирования)
В дататейбл можно работать со списками как ячейки в
источник

IY

Igor Yakubovskiy in R (язык программирования)
источник

IY

Igor Yakubovskiy in R (язык программирования)
но возможно, что это опять не совсем то 🙂
источник

ИП

Иван Поздняков... in R (язык программирования)
Так как это конкретно сделать?
источник

ИП

Иван Поздняков... in R (язык программирования)
Igor Yakubovskiy
В дататейбл можно работать со списками как ячейки в
Да-да, именно про это я и пишу, колонка value должна быть в итоге list column ну или уже сразу разложена в длину. Но как дойти до этого? Просто, может, есть какой-то готовый инструмент
источник

EP

Ed P in R (язык программирования)
Здесь алгоритм типа tree traversal. Можно и навелосипедить ради упражнения))

Есть пакет rlist для удобной работы со списками, но я там не помню, чтобы была именно такая функция
источник

EP

Ed P in R (язык программирования)
Иван Поздняков
Да-да, именно про это я и пишу, колонка value должна быть в итоге list column ну или уже сразу разложена в длину. Но как дойти до этого? Просто, может, есть какой-то готовый инструмент
источник

ИП

Иван Поздняков... in R (язык программирования)
Ed P
Здесь алгоритм типа tree traversal. Можно и навелосипедить ради упражнения))

Есть пакет rlist для удобной работы со списками, но я там не помню, чтобы была именно такая функция
Вот я тож нашел этот пакет, выглядит интересным, но немного заброшенным
источник

АК

Артём Клевцов... in R (язык программирования)
Иван Поздняков
ggplotly имхо это все-таки баловство, он почти никогда не делает нормально из ggplot объекта, поэтому лучше свой синтаксис плотли.
echarts4r хороший, он мне нравится тем, что работает довольно шустренько, еще я бы присмотрелся к taucharts
echarts на данный момент, наверное, лучшее что есть для R. Да и в JS среди высокоуровневых либ у него не так много конкурентов. Plotly хорошо, пока не начинает копать вглубь и не лезешь в кастомизацию тултипов и всё в таком роде.
источник

ИП

Иван Поздняков... in R (язык программирования)
Ed P
Здесь алгоритм типа tree traversal. Можно и навелосипедить ради упражнения))

Есть пакет rlist для удобной работы со списками, но я там не помню, чтобы была именно такая функция
это я про rlist говорил. А data.tree вообще, мне кажется, не встречал раньше, прикольная штука, но уже сразу понятно, что не совсем то, что нужно: это придется очень сложную конструкцию выстраивать с переводом в тип data.tree, потом обратно, уже в датафрейм
источник

AS

Alexander Semenov in R (язык программирования)
Я чего-то не понимаю или dplyr теперь не устанавливается, если выбираешь no в ответ на предложение скомпилировать его из исходников?
источник

AS

Alexander Semenov in R (язык программирования)
Не выходит с 0.8.5 до 1.0.2 ради c_across обновиться.
источник

AS

Alexander Semenov in R (язык программирования)
Catboost 0.14.1 на маке спокойно работает с параметром learning_rate = 0.1 в функции catboost.train, а версия 0.20 на винде уже ругается:
Error in catboost.train(train_pool, params = list(loss_function = "Logloss",  : 
 c:/goagent/pipelines/buildmaster/catboost.gittt/catboost/private/libs/options/plain_options_helper.cpp:469: Unknown option {learning_rate.1} with value "0.1"

Ни дня без приключений на ровном месте.
источник

АК

Артём Клевцов... in R (язык программирования)
Alexander Semenov
Catboost 0.14.1 на маке спокойно работает с параметром learning_rate = 0.1 в функции catboost.train, а версия 0.20 на винде уже ругается:
Error in catboost.train(train_pool, params = list(loss_function = "Logloss",  : 
 c:/goagent/pipelines/buildmaster/catboost.gittt/catboost/private/libs/options/plain_options_helper.cpp:469: Unknown option {learning_rate.1} with value "0.1"

Ни дня без приключений на ровном месте.
Ругаешься на разное поведение разных версий пакета на разных ОС? Ок.
источник