Если предположить, что данные выглядит примерно так:
library(sqldf)
carddata = data.frame(new_user_indicator = c('N','N','Y','Y','Y'),
loyalty_threshold = c(1,1,5,3,1))
И ваша цель состоит в том, чтобы использовать другой вектор с одним значением для выбора всех объектов carddata
которых лояльность порог выше этого значения , вы можете использовать следующее:
# create a dataframe from average_loyalty_threshold so that sqldf will see it as a table
average_loyalty_threshold = data.frame(threshold = 2)
sqldf("select count(*)
from carddata
where new_user_indicator == 'Y'
and loyalty_threshold > (select * from average_loyalty_threshold)")
#returns
count(*)
1 2
с (select * from average_loyalty_threshold)
вы можете выбрать, что одно значение, что вы Looki ng для.
Однако есть более простой способ:
average_loyalty_threshold = 2
fn$sqldf("select count(*)
from carddata
where new_user_indicator == 'Y'
and loyalty_threshold > `average_loyalty_threshold`")
#returns
count(*)
1 2
Здесь я прошел значение порога лояльности прямо в запросе.
Вы также можете использовать sprintf()
для вставки этого текста, но, как указывалось в комментарии других, fn$
- это рекомендуемый способ ссылки на внешние переменные.
Пожалуйста, объясните, что именно вы хотите предоставить воспроизводимый пример, включая все входы и заявления библиотек и ожидаемый результат. –