Size: a a a

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

2020 July 27

GS

Gleb Suvorov in R (язык программирования)
https://rdrr.io/cran/anonymizer/ вот в это засуньте и присылайте)
источник

AS

Anton Silchenko in R (язык программирования)
Jury Sergeev
ну исскуственные то - на 5ть строчек сделать можно )
Сделал что-то похожее) df1_ как желаемый результат, необходимо найти комбинации значений из df1 в df2 и вернуть в df1 значение столбца a3 для соотвествующей комбинации.
источник

PD

Pavel Demin in R (язык программирования)
Anton Silchenko
Коллеги, помогите пожалуйста. Есть два дата фрейма df1 и df2.  Необходимо из каждой строки df1 взять комбинацию значений определенных столбов, пускай это будет df1$а1 и df1$а2, найти соответствующую комбинацию в df2, пускай это будут df2$a1 и df2$a2, и вернуть в df1  значение df2$a3 из строки в которой было найдено совпадение с условием.  Можно это через джоин провернуть, но получается хтоническое чудовище. \
Вообще-то, звучит как просто merge по двум колонкам
источник

AS

Anton Silchenko in R (язык программирования)
df1 <- data.frame(
 id=c(1002,1002,1001,1007,1008),
 a2=c("тригер2","тригер1","тригер1","тригер1","тригер1"))

df2 <- data.frame(
 id=c(1005,1002,1001,1002,1009),
 a2=c("тригер1","тригер1","тригер1","тригер7","тригер1"),
 a3=c("дата1","дата1","дата4","дата6","дата5"))

df1_ <- data.frame(
 id=c(1002,1002,1001,1007,1008),
 a2=c("тригер2","тригер1","тригер1","тригер1","тригер1"),
 a3=c(NA,"дата1","дата4",NA,NA))
источник

AS

Anton Silchenko in R (язык программирования)
Pavel Demin
Вообще-то, звучит как просто merge по двум колонкам
Похоже, но это только часть задачи, джоин очень неудобный вариант
источник

PD

Pavel Demin in R (язык программирования)
Anton Silchenko
Похоже, но это только часть задачи, джоин очень неудобный вариант
чем это неудобно?
merge(df1, df2, by = c("id", "a2"), all.x = T)
источник

JS

Jury Sergeev in R (язык программирования)
Anton Silchenko
Сделал что-то похожее) df1_ как желаемый результат, необходимо найти комбинации значений из df1 в df2 и вернуть в df1 значение столбца a3 для соотвествующей комбинации.
df1 %>% left_join(df2, by = c("id", "a2"))

это если tidyverse путь
источник

JS

Jury Sergeev in R (язык программирования)
а чем не удобно?
источник

JS

Jury Sergeev in R (язык программирования)
видимо что-то в цикле перебирается, да?
источник

AS

Anton Silchenko in R (язык программирования)
Jury Sergeev
видимо что-то в цикле перебирается, да?
Почти, у меня несколько колонок с условиями, и в зависимости от результата одной операции, мне нужно будет менять комбинацию условий для поиска. Чтобы в итоге отдать один столбец статусов.
источник

JS

Jury Sergeev in R (язык программирования)
ну все же через merge/join стройнее получается, имхо
источник

JS

Jury Sergeev in R (язык программирования)
просто в два join-а делать
источник

PD

Pavel Demin in R (язык программирования)
может быть можно придумать критерий, ко которому Вы поймете, что результирующий джойн Вам подходит, и попробовать мерджить все возможные компбинации? мб странно звучит, но я так понял, что проблема, почему мержд не нравится, в том, что изначально непонятно, по каким колонкам мерджить?
источник

AS

Anton Silchenko in R (язык программирования)
Я чуть объясню предпосылки, изначально это два фрейма с рассылками и продажами. И нужно посчитать была ли покупка по рассылке, была ли покупка до рассылки если не было покупки по рассылке,  была ли покупка после рассылки но не по акции, была ли покупка после рассылки по другой акции итд. Можно фильтрами и джоинами играть, но задачи такого рода частые и хотелось на будущее понять механику. В dax это сделать просто, но не хочется.
источник

JS

Jury Sergeev in R (язык программирования)
так признаков понадобавлять
источник

JS

Jury Sergeev in R (язык программирования)
но Вам виднее как лучше, нам отсюда не видно
источник

YS

Yuriy Saraikin in R (язык программирования)
Anton Silchenko
Я чуть объясню предпосылки, изначально это два фрейма с рассылками и продажами. И нужно посчитать была ли покупка по рассылке, была ли покупка до рассылки если не было покупки по рассылке,  была ли покупка после рассылки но не по акции, была ли покупка после рассылки по другой акции итд. Можно фильтрами и джоинами играть, но задачи такого рода частые и хотелось на будущее понять механику. В dax это сделать просто, но не хочется.
fuzzyjoin попробуйте посмотреть, может быть поможет
источник

AS

Anton Silchenko in R (язык программирования)
Yuriy Saraikin
fuzzyjoin попробуйте посмотреть, может быть поможет
спасибо, посмотрю
источник

YS

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

YS

Yevhen Salatskiy in R (язык программирования)
Похож на sql чемто
источник