Ответ 1
Обе функции импорта данных (здесь: read.csv()
), а также глобальная опция предлагают вам сказать stringsAsFactors=FALSE
, которые должны исправить это.
Я очень новичок в R, и у меня возникают проблемы с доступом к набору данных, который я импортировал. Я использую RStudio и использовал функцию Import Dataset при импорте моего csv файла и вставлял строку из консольного окна в исходное окно. Код выглядит следующим образом:
setwd("c:/kalle/R")
stuckey <- read.csv("C:/kalle/R/stuckey.csv")
point <- stuckey$PTS
time <- stuckey$MP
Однако данные не являются целыми или числовыми, поскольку я привык, но имеет значение, поэтому, когда я пытаюсь построить переменные, я получаю только гистограммы, а не обычный график. Когда вы проверяете данные, это, кажется, в порядке, просто я не могу использовать его, поскольку он в форме фактора.
Обе функции импорта данных (здесь: read.csv()
), а также глобальная опция предлагают вам сказать stringsAsFactors=FALSE
, которые должны исправить это.
По умолчанию read.csv
проверяет первые несколько строк ваших данных, чтобы увидеть, следует ли рассматривать каждую переменную как числовую. Если он находит нечисловые значения, он предполагает, что переменная - это символьные данные, а символьные переменные преобразуются в факторы.
Похоже, что переменные PTS и MP в вашем наборе данных содержат не численные значения, поэтому вы получаете неожиданные результаты. Вы можете заставить эти переменные числовыми с помощью
point <- as.numeric(as.character(point))
time <- as.numeric(as.character(time))
Но никакие значения, которые не могут быть преобразованы, будут отсутствовать. (Часто задаваемый параметр R часто задает несколько разных методов для преобразования числовых чисел, но я никогда не могу вспомнить, что это такое.)
Вы можете установить это глобально для всех read.csv/read.*
С options(stringsAsFactors=F)
Затем прочитайте файл следующим образом: my.tab <- read.table( "filename.csv", as.is=T )
При импорте файлов данных csv команда import должна отражать как разделение данных между каждым столбцом (;), так и разделителем числа с плавающей запятой для ваших числовых значений (для числовой переменной = 2,5 это будет "," ).
Таким образом, команда для импорта csv должна быть более полной и содержать больше команд:
stuckey <- read.csv2("C:/kalle/R/stuckey.csv", header=TRUE, sep=";", dec=",")
Это должно импортировать все переменные как целые числа, так и числовые.
Я новичок в R и столкнулся с той же проблемой. Но затем я посмотрел на свои данные и заметил, что это вызвано тем фактом, что в моем файле csv использовался разделитель запятой (,) во всех числовых столбцах (пример: 1,233,444,56 вместо 1233444,56).
Я удалил разделитель запятой в моем CSV файле, а затем перезагрузился в R. Теперь мой фрейм данных распознает все столбцы как числа.
Я уверен, что есть способ справиться с этим внутри самой функции read.csv.
Это работает правильно только для меня, если включить strip.white = TRUE
в команду read.csv
.
(Я нашел решение здесь.)
для меня решение было включить пропустить = 0 (количество строк, чтобы пропустить в верхней части файла. Может быть установлено> 0)
mydata <- read.csv(file = "file.csv", header = TRUE, sep = ",", skip = 22)