Импортировал csv-dataset в R, но значения становятся факторами - программирование
Подтвердить что ты не робот

Импортировал csv-dataset в R, но значения становятся факторами

Я очень новичок в R, и у меня возникают проблемы с доступом к набору данных, который я импортировал. Я использую RStudio и использовал функцию Import Dataset при импорте моего csv файла и вставлял строку из консольного окна в исходное окно. Код выглядит следующим образом:

setwd("c:/kalle/R")
stuckey <- read.csv("C:/kalle/R/stuckey.csv")
point <- stuckey$PTS
time <- stuckey$MP

Однако данные не являются целыми или числовыми, поскольку я привык, но имеет значение, поэтому, когда я пытаюсь построить переменные, я получаю только гистограммы, а не обычный график. Когда вы проверяете данные, это, кажется, в порядке, просто я не могу использовать его, поскольку он в форме фактора.

4b9b3361

Ответ 1

Обе функции импорта данных (здесь: read.csv()), а также глобальная опция предлагают вам сказать stringsAsFactors=FALSE, которые должны исправить это.

Ответ 2

По умолчанию read.csv проверяет первые несколько строк ваших данных, чтобы увидеть, следует ли рассматривать каждую переменную как числовую. Если он находит нечисловые значения, он предполагает, что переменная - это символьные данные, а символьные переменные преобразуются в факторы.

Похоже, что переменные PTS и MP в вашем наборе данных содержат не численные значения, поэтому вы получаете неожиданные результаты. Вы можете заставить эти переменные числовыми с помощью

point <- as.numeric(as.character(point))
time <- as.numeric(as.character(time))

Но никакие значения, которые не могут быть преобразованы, будут отсутствовать. (Часто задаваемый параметр R часто задает несколько разных методов для преобразования числовых чисел, но я никогда не могу вспомнить, что это такое.)

Ответ 3

Вы можете установить это глобально для всех read.csv/read.* С options(stringsAsFactors=F)

Затем прочитайте файл следующим образом: my.tab <- read.table( "filename.csv", as.is=T )

Ответ 4

При импорте файлов данных csv команда import должна отражать как разделение данных между каждым столбцом (;), так и разделителем числа с плавающей запятой для ваших числовых значений (для числовой переменной = 2,5 это будет "," ).

Таким образом, команда для импорта csv должна быть более полной и содержать больше команд:

    stuckey <- read.csv2("C:/kalle/R/stuckey.csv", header=TRUE, sep=";", dec=",")

Это должно импортировать все переменные как целые числа, так и числовые.

Ответ 5

Я новичок в R и столкнулся с той же проблемой. Но затем я посмотрел на свои данные и заметил, что это вызвано тем фактом, что в моем файле csv использовался разделитель запятой (,) во всех числовых столбцах (пример: 1,233,444,56 вместо 1233444,56).

Я удалил разделитель запятой в моем CSV файле, а затем перезагрузился в R. Теперь мой фрейм данных распознает все столбцы как числа.

Я уверен, что есть способ справиться с этим внутри самой функции read.csv.

Ответ 6

Это работает правильно только для меня, если включить strip.white = TRUE в команду read.csv.

(Я нашел решение здесь.)

Ответ 7

для меня решение было включить пропустить = 0 (количество строк, чтобы пропустить в верхней части файла. Может быть установлено> 0)

mydata <- read.csv(file = "file.csv", header = TRUE, sep = ",", skip = 22)