У меня есть таблица data.table с 3 столбцами: тикер, дата и цена. Я сбежал
setkey(prices,ticker,date)
Если я сделаю это из кода, это сработает
prices[list("MSFT",as.Date("2013-01-15")]
Возвращение только строки для MSFT в 2013-01-15 Однако, если я напишу эту функцию
getPrice <- function(ticker,date) {
prices[list(ticker,date)]
}
Он возвращает всю таблицу data.table. Я подозреваю, что это имеет какое-то отношение к области видимости в параметре i, но я не могу заставить его работать. Как мне запросить data.table, если я не знаю параметры заранее?
1 ответ
Ваша проблема - это имена переменных в вашей функции. Измените их, например, x
и y
(чтобы они не совпадали с названиями столбцов в вашем data.table
), и все будет работать. Сейчас вы создаете data.table
со всеми столбцами ticker
и date
, а затем присоединяете его, таким образом восстанавливая исходные данные.
Другой (более надежный) вариант - сделать что-то подобное в своей функции:
getPrice <- function(ticker,date) {
tmp = list(ticker, date)
prices[tmp]
}
Подробнее об этом см. В разделах часто задаваемых вопросов 2.12 и 2.13 - http: //datatable.r -forge.r-project.org/datatable-faq.pdf
Похожие вопросы
Новые вопросы
r
R — это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, используйте минимально воспроизводимые примеры, которые другие могут запустить с помощью копирования и вставки. Показать желаемый результат. Используйте dput() для данных и укажите все небазовые пакеты с помощью library(). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. Для вопросов по статистике используйте https://stats.stackexchange.com.