Size: a a a

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

2020 September 14

OS

Oleg Serikov in R (язык программирования)
А так, ну мапредьюс в принципе конечно не с потолка взялась и под какие-то задачи самое то.
источник

А

Александр in R (язык программирования)
Семейство comprehension и правда прекрасно
источник

ГД

Григорий Демин... in R (язык программирования)
Александр
Семейство comprehension и правда прекрасно
Интересно, а чем оно прекрасно? Я очень искал красивые примеры, в которых list comprehension выглядели бы лучше, чем штатные R-средства, но так и не нашел:(
источник

ГД

Григорий Демин... in R (язык программирования)
За красивые примеры и сейчас буду благодарен
источник

АК

Артём Клевцов... in R (язык программирования)
Григорий Демин
Интересно, а чем оно прекрасно? Я очень искал красивые примеры, в которых list comprehension выглядели бы лучше, чем штатные R-средства, но так и не нашел:(
Согласен. Такая нечитаемая колбаса часто выходит.
источник

А

Александр in R (язык программирования)
Григорий Демин
Интересно, а чем оно прекрасно? Я очень искал красивые примеры, в которых list comprehension выглядели бы лучше, чем штатные R-средства, но так и не нашел:(
мне нравится что там можно поставить фильтр на те items которые хочешь исользовать. В аналоге R, а это lapply все же придется добавлять лишнюю строку.
источник

ГД

Григорий Демин... in R (язык программирования)
Александр
мне нравится что там можно поставить фильтр на те items которые хочешь исользовать. В аналоге R, а это lapply все же придется добавлять лишнюю строку.
В смысле? x[x>0] , например
источник

А

Александр in R (язык программирования)
Но мне кажется еще питонисты очень любят comprehension потому-что они не избалованны однострочниками
источник

А

Александр in R (язык программирования)
Григорий Демин
В смысле? x[x>0] , например
да, только тут вы изменяете объект, пусть даже не записывая его, а там можно использовать итератор
источник

А

Александр in R (язык программирования)
ну вложенные циклы тоже хорошо смотрятся

for i in range(7,9):
       for j in range(1,11):
              print(f"{i}*{j}={i*j}")

[[i*j for j in range(1,11)] for i in range(7,9)]
источник

ГД

Григорий Демин... in R (язык программирования)
Александр
да, только тут вы изменяете объект, пусть даже не записывая его, а там можно использовать итератор
Ну это тогда не про comprehensions, а про то, что в питоне есть нормальные итераторы
источник

АК

Артём Клевцов... in R (язык программирования)
Александр
ну вложенные циклы тоже хорошо смотрятся

for i in range(7,9):
       for j in range(1,11):
              print(f"{i}*{j}={i*j}")

[[i*j for j in range(1,11)] for i in range(7,9)]
Ничего хорошего. Это сложно читать, т.к. приходиться всматриваться где заканчивается один и начинается другой. Добавь сюда ещё условия и будет совсем хорошо.
источник

А

Александр in R (язык программирования)
Григорий Демин
Ну это тогда не про comprehensions, а про то, что в питоне есть нормальные итераторы
этого в R правда не хватает
источник

ГД

Григорий Демин... in R (язык программирования)
Александр
ну вложенные циклы тоже хорошо смотрятся

for i in range(7,9):
       for j in range(1,11):
              print(f"{i}*{j}={i*j}")

[[i*j for j in range(1,11)] for i in range(7,9)]
У меня в плане примеров очень практический интерес: https://cran.r-project.org/web/packages/comprehenr/vignettes/Introduction.html - я бы хотел найти какие-нибудь более изящные примеры, а  не такие, которые я могу заменить в два раза более коротким стандартным R кодом
источник

А

Александр in R (язык программирования)
Григорий Демин
У меня в плане примеров очень практический интерес: https://cran.r-project.org/web/packages/comprehenr/vignettes/Introduction.html - я бы хотел найти какие-нибудь более изящные примеры, а  не такие, которые я могу заменить в два раза более коротким стандартным R кодом
интересная библиотека, но без итераторов в R она действительно не сильно практична
источник

А

Александр in R (язык программирования)
Артём Клевцов
Ничего хорошего. Это сложно читать, т.к. приходиться всматриваться где заканчивается один и начинается другой. Добавь сюда ещё условия и будет совсем хорошо.
можно еще без влженных скобок

for x in non_flat:
   if len(x) > 2
       for y in x:
           y

[ y for x in non_flat if len(x) > 2 for y in x ]
источник

А

Александр in R (язык программирования)
но я не хочу отстаивать питон или R, давно пишу на том и на другом (а еще писал на c++ и прости господи matlab), так что тут дело вкуса
источник

ГД

Григорий Демин... in R (язык программирования)
Александр
можно еще без влженных скобок

for x in non_flat:
   if len(x) > 2
       for y in x:
           y

[ y for x in non_flat if len(x) > 2 for y in x ]
unlist(non_flat[lengths(non_flat)>2])
источник

АК

Артём Клевцов... in R (язык программирования)
Александр
можно еще без влженных скобок

for x in non_flat:
   if len(x) > 2
       for y in x:
           y

[ y for x in non_flat if len(x) > 2 for y in x ]
Проблема их в том, что читаются они не слева направо и не справа налево.
источник

ГД

Григорий Демин... in R (язык программирования)
Но пример хороший, добавлю пожалуй
источник