我是r的新手,我被卡住了。
我有一个数据框,我从csv读到r:
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中的错误(公式= OTA $ co2mol~OTA $ depth,data = OTA):变量'OTA $ co2mol'的无效类型(NULL)
显然这是data.frame / data.table /数据格式/数据读取错误,我只是不知道如何修复它。提前谢谢!