Как создать фрейм данных из встроенного набора данных «ирис»? - PullRequest
0 голосов
/ 25 января 2020

Я новичок в использовании Rstudio и выполняю упражнения, описанные в наших заметках к курсу.
Нам нужно работать с набором данных 'iris', однако я не смог его успешно сохранить как действительный data.frame. Лучшее, что я сделал, - это создание пустого фрейма данных в глобальной среде с 0 obs. из 0 переменных.

Вот некоторые из кодов, через которые я работал, и результаты. Я очень плохо знаком с R и немного борюсь с использованием встроенных наборов данных с точки зрения загрузки и использования - я в порядке с импортом и созданием.

data()
> View(iris)
> iris<-write.csv(iris)
""
> iris
NULL
> str(iris)
 NULL
> iris<-data.frame(iris)
> iris<-read.csv(iris.csv)
Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  object 'iris.csv' not found
> library(datasets)
> data.frame(iris)
data frame with 0 columns and 0 rows

Я попытался> write.csv (iris , 'iris.csv') # не повезло

1 Ответ

0 голосов
/ 25 января 2020

Сначала проверьте, является ли радужная оболочка уже data.frame, выполнив следующую команду: -

is.data.frame(iris)

Если ответ TRUE, то выполните следующую команду, чтобы запишите его в файл .csv: -

write.csv(iris, "/location/at/which/you/want/to/save/the/file)

Если вы хотите сохранить объекты как объекты R, нужно использовать save(), а расширение файла должно быть .RData. Как и в вашем случае, вы можете выполнить следующую команду: -

save(iris, file = '/location/iris.RData'

И вы можете загрузить файл .RData с функцией load() в R. В вашем случае это может быть: -

load('/location/iris.RData')

Некоторые ошибки, которые вы сделали: - Во второй строке кода, где вы запускаете

> iris<-write.csv(iris)

вы только что предоставили write.csv первый аргумент, названный x, но никогда не указали второй требуемый аргумент, file. Кроме того, никогда не назначайте write.csv() функцию с ее аргументами объекту с помощью <-, потому что write.csv() - это функция, которая не возвращает значение или объект. Другим примером такой функции, как write.csv(), может быть library().

Таким образом, при кодировании потоков вы используете неправильный синтаксис, выполнив следующую строку

> iris<-write.csv(iris)

и, следовательно, вы получили объект NULL. И str объекта NULL сам по себе NULL. Затем вы создали data.frame объекты, передав iris как объект данных, но поскольку ранее iris стал NULL объектом, data.frame объекта NULL равняется NULL. Поскольку никогда не было записано iris.csv файла, R тоже не сможет его прочитать.

Также в вашей функции read.csv() вы передали аргумент file как объект данных, а не как путь. Вот почему вы получили ошибку object 'iris.csv' not found, а не cannot open file 'iris.csv': No such file or directory. Чтобы передать его как путь, вы всегда должны указывать расположение вашего файла в кавычках, одинарных или двойных.

Если вы когда-либо не понимаете, как передавать объекты в функцию, запустите команда ?function_name, например ?write.csv(), ?library, ?read.csv. Это предоставит вам документацию по функции. Он также предоставит вам примеры использования.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...