Я пытаюсь загрузить набор данных в R, используя функцию data(). Он отлично работает, когда я использую имя набора данных (например, data(Titanic)
или data("Titanic")
). Для меня не работает загрузка набора данных с использованием переменной вместо ее имени. Например:Загрузите набор данных в R с данными() с использованием переменной вместо имени набора данных
# This works fine:
> data(Titanic)
# This works fine as well:
> data("Titanic")
# This doesn't work:
> myvar <- Titanic
> data(myvar)
**Warning message:
In data(myvar) : data set ‘myvar’ not found**
Почему R ищет данных с именем «MyVar», так как он не котируется? И поскольку это поведение по умолчанию, разве нет способа загрузить набор данных, хранящийся в переменной?
Для записи то, что я пытаюсь сделать, это создать функцию, которая использует правила ассоциации пакетов и рудников «arules», используя Apriori. Таким образом, мне нужно передать набор данных в качестве параметра этой функции.
myfun <- function(mydataset) {
data(mydataset) # doesn't work (data set 'mydataset' not found)
rules <- apriori(mydataset)
}
редактировать - выход sessionInfo():
> sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] arules_1.0-14 Matrix_1.0-12 lattice_0.20-15 RPostgreSQL_0.4 DBI_0.2-7
loaded via a namespace (and not attached):
[1] grid_3.0.0 tools_3.0.0
И фактические ошибки я получаю (используя, например, образец набора данных "хуг"):
xyz <- data.frame(c(1,2,3))
data(list=xyz)
Warning messages:
1: In grep(name, files, fixed = TRUE) :
argument 'pattern' has length > 1 and only the first element will be used
2: In grep(name, files, fixed = TRUE) :
argument 'pattern' has length > 1 and only the first element will be used
3: In if (name %in% names(rds)) { :
the condition has length > 1 and only the first element will be used
4: In grep(name, files, fixed = TRUE) :
argument 'pattern' has length > 1 and only the first element will be used
5: In if (name %in% names(rds)) { :
the condition has length > 1 and only the first element will be used
6: In grep(name, files, fixed = TRUE) :
argument 'pattern' has length > 1 and only the first element will be used
...
...
32: In data(list = xyz) :
c("data set ‘1’ not found", "data set ‘2’ not found", "data set ‘3’ not found")
Заметим, что поскольку вы уже признали, что либо 'data (« Titanic »)' OR 'data (Titanic)' работают, то не должно было быть слишком неожиданным, что 'data (myvar)' пытается загрузить набор данных с именем 'myvar' , – Dason
Можете ли вы добавить вывод 'sessionInfo()'.Другие решения работают, поэтому мне интересно, почему вы получаете ошибки. Обходной путь, который у вас есть как «принятый», далеко не идеален ... – Dason