Вопрос или проблема
Это проблема, с которой я постоянно сталкиваюсь при попытке сделать boxplot
в R
. Судя по всему, код, который я использую, должен работать, более того, по сравнению с моими записями и другими одноклассниками, кажется, что он такой же. Что я делаю не так?
result <- read.csv("keough.csv", header=TRUE, sep=";", dec= ",")
head(result)
BIOFILM.SERP
1 SL,61
2 SL,113
3 SL,123
4 SL,75
5 SL,75
6 SL,83
attach(result)
boxplot(BIOFILM~SERP, dat=result)
Error in eval(predvars, data, env) : object ‘BIOFILM’ not found
result <- read.csv(“Keough.csv”, header=TRUE, sep=“,”, dec=“,”)
Ответ или решение
Ваша проблема с построением графика «boxplot» в R, скорее всего, связана с использованием неверных имен переменных и, возможно, с неправильными данными. Рассмотрим детали и предложим решение.
Теория
В R, функция boxplot()
используется для создания диаграммы бокса и усов. Синтаксис boxplot(formula, data)
предполагает использование формулы, где левая часть (BIOFILM
) символизирует зависимую переменную, а правая (SERP
) – факторную переменную, с учетом которой будет построена диаграмма. Все переменные должны быть четко определены в рамках указанной таблицы данных с помощью аргумента data
.
Пример
В вашем случае, ошибки начались из-за именования столбцов и порядка вычитывания данных. Рассмотрим строчки кода:
result <- read.csv("keough.csv", header=TRUE, sep=";", dec=",")
head(result)
Здесь файл "keough.csv" читается с разделителем ;
. Однако ваши данные содержат колонку с именем BIOFILM.SERP
, которая может быть неправильно интерпретирована в процессе разбиения данных. Также вы пытаетесь вызвать отдельные факторы с нестандартными именами.
Применение
Чтобы исправить возникшие ошибки и грамотно построить диаграмму бокса и усов, выполните следующие шаги:
-
Убедитесь, что столбцы правильно именуются и разделены:
Убедитесь, что в файле "keough.csv" данные содержат правильные разделители и нет лишних запятых или иных знаков, которые могут влиять на чтение таблицы.
-
Проверьте структуру данных:
Предположим, у вас есть две необходимые переменные:
BIOFILM
иSERP
. Обратите внимание, что в вашем наборе данных их может входить в комбинацию значенийBIOFILM.SERP
. Разбивать такую строку на отдельные поля можно заранее в редакторе таблиц (например, Excel) или прямо в R:result <- read.csv("keough.csv", header=TRUE, sep=";", dec=",") result <- transform(result, BIOFILM = as.numeric(gsub("^[A-Z]+,|^[A-Z]", "", BIOFILM.SERP)), SERP = sub(",.*", "", BIOFILM.SERP))
-
Постройте
boxplot
:После трансформации данных можно строить диаграмму бокса и усов:
boxplot(BIOFILM ~ SERP, data = result)
Это исправление основано на предположении об объединении значений разного типа в одной колонке. Эти изменения должны устранить ошибку object 'BIOFILM' not found
, и обеспечить корректную визуализацию данных.