Каковы эквиваленты R для этих представлений списков Python:
[(i,j) for i,j in zip(index, Values)]
[(i,j) for i,j in enumerate(Values)]
[(i,j) for i,j in enumerate(range(10,20))] %MWE, indexing or enumerating to
%keep up with the index, there may
%be some parameter to look this up
Пример с выходными данными
>>> [(i,j) for i,j in enumerate(range(10,20))]
[(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), (7, 17), (8, 18), (9, 19)]
Я решил эту проблему ранее с помощью некоторого трюка в R, но больше не могу вспомнить, первой идеей было itertools -pkg, но я надеюсь найти более идиоматический способ решения проблем.
zip
и enumerate
не являются особенно трудными реализовать в R:
#' zip(1:5,1:10)
zip <- function(...) {
mapply(list, ..., SIMPLIFY = FALSE)
}
Перечисляют, просто определить с точки зрения zip
:
#' enumerate(l=LETTERS)
enumerate <- function(...) {
zip(ix=seq_along(..1), ...)
}
, Так как это надлежащие функции, мы можем использовать ...
, чтобы сделать их довольно гибкими и краткими, и использовать в своих интересах поведение mapply, такое как переработка исходных данных и именование вывода правильно.