#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»)