#r #csv
#r #csv
Вопрос:
Я пишу программу R для чтения нескольких файлов csv один за другим с помощью функций. Это работает, если я даю read.csv
команду только в этом рабочем каталоге, но это никогда не сработает, если я передам имя файла в качестве параметра.
Например
dat <- function (x)
{
awr <- data.table(read.csv(x))
}
Я прошел
dat("raja.csv")
К сожалению, он не выдает никаких ошибок, и набор данных awr не создается.
Если я дам
awr <- data.table(read.csv("raja.csv")) ..it works...
Я не могу понять, почему он не работает при передаче в функцию.
Я проверил рабочий каталог с помощью getwd()
. это то же самое…
Ответ №1:
Вы ничего не возвращаете из своей функции. Это должно сделать это:
dat <- function (x) data.table(read.csv(x))
Первоначально вы присваивали содержимое файла awr
, но не возвращали awr
.
Комментарии:
1. это не имеет значения. запустите это
tmp <- function(x) y <- x; (var <- tmp(5))
2. Да, но в исходном примере результату функции ничего не присваивается.
dat("raja.csv")
не будет ничего печатать, пока я не изменю функцию. Если бы плакат сделалx <- dat("raja.csv")
это, все было бы по-другому.3. @rawr Но если вы просто запустите
dat("raja.csv")
, результат будет возвращен незаметно, поэтому не похоже, что что-то произошло. Хотя.Last.value
должно быть содержимое.4. В итоге @user3745215 ваша функция, вероятно, работает так, как ожидалось. Просто, когда вы предварительно просматриваете его, набирая
dat("raja.csv")
, результаты не выводятся на вашу консоль. Однако, если вы должны были присвоить результаты этой функции переменной, она должна работать так, как вы хотите. В целом, я бы рекомендовал использовать решение, которое я опубликовал, которое более четко указано в том, что будет возвращено.5. итак, мы все трое согласны с тем, что ваш ответ не имеет значения и не затрагивает вопрос. прохладный