使用csv和boxplot2在model.frame.default中出错

时间:2016-10-13 17:22:38

标签: r csv dataframe

我是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 /数据格式/数据读取错误,我只是不知道如何修复它。提前谢谢!

0 个答案:

没有答案