Ошибка в model.frame.default с csv и boxplot2

#r #csv #dataframe

#r #csv-файл #фрейм данных

Вопрос:

Я новичок в r, и я застрял.

У меня есть фрейм данных, который я считываю в r из csv:

     site depth      co2        n2o        ch4
1 ot aue     0 408.7412  2.0432975  11.393448
2 ot aue     0 325.8365 -0.4539224  -2.222266
3 ot aue     0 237.4456  0.6853362 -13.105958
 

который я затем подразделяю на «сайт» (существует пять разных сайтов).:

 OTA<-subset(data, site=="ot aue")
 

и я хотел изменить единицы измерения парниковых газов и сохранить эти значения в новых столбцах, что я и сделал здесь:

 data$co2mol<-NA
data$co2mol=((data$co2/3600)/12)*1000
data$n2omol=NA
data$n2omol<-((data$n2o/3600)/14)*1000000
data$ch4mol=NA
data$ch4mol<-((data$ch4/3600)/12)*1000
 

Я подтвердил изменения с помощью:

 > names(data)
[1] "site"   "depth"  "co2"    "n2o"    "ch4"    "co2mol" "n2omol" "ch4mol"
 

и

 > str(data)
'data.frame':   71 obs. of  8 variables:
 $ site  : chr  "ot aue" "ot aue" "ot aue" "ot aue" ...
 $ depth : int  0 0 0 0 0 0 0 0 0 0 ...
 $ co2   : num  409 326 237 294 557 ...
 $ n2o   : num  2.043 -0.454 0.685 2.084 5.911 ...
 $ ch4   : num  11.39 -2.22 -13.11 3.66 -11.15 ...
 $ co2mol: num  9.46 7.54 5.5 6.82 12.89 ...
 $ n2omol: num  47.3 -10.5 15.9 48.2 136.8 ...
 $ ch4mol: num  0.2637 -0.0514 -0.3034 0.0847 -0.2582 ...
 

Теперь мне нужно построить график данных, используя столбцы, которые я создал с новыми единицами измерения.
Этот код работает с исходными столбцами (co2, n2o, ch4), но не с новыми столбцами (co2mol, n2omol, ch4mol).

 ota_co2mol<-boxplot2(OTA$co2mol~OTA$depth, data=OTA,
                  xlab="Depth in Hole (cm)", 
                  ylab="mol CO2",
                  col = c("tan", "tan2", "tan3", "tan4", "burlywood4"), 
                  main=expression("Ot Aue CO"[2]),
                  top=TRUE,
                  ylim=c(-593,3762))
 

При попытке создать boxplot я получаю это сообщение об ошибке:

Ошибка в model.frame.default(formula = OTA $co2mol ~ OTA $ depth, data = OTA): недопустимый тип (NULL) для переменной ‘OTA $ co2mol’

Очевидно, что это ошибка чтения data.frame / data.table / data format / data, я просто не знаю, как это исправить. Заранее спасибо!

Комментарии:

1. Весь ваш пример вывода показывает, что данные находятся в вызываемой переменной data , но ваш вызов ссылается OTA на boxplot2 . Вы что-то изменили для вопроса?

2. Извините, должен был упомянуть об этом. Я подмножество «данных» по сайту. OTA — это «ot aue». OTA<-подмножество (данные, сайт ==»ot aue»)