当我构建以下data.frame时:
cntrydata<-as.data.frame(cbind(c('BE', 'BG', 'CH', 'CY', 'CZ', 'DE', 'DK', 'EE',
'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE',
'IL', 'LT', 'NL', 'NO', 'PL', 'PT', 'RU', 'SE',
'SI', 'SK', 'UA'),c('C', 'P', 'C', 'P', 'P', 'C',
'C', 'C', 'C', 'C', 'C', 'C', 'P', 'P', 'P', 'C',
'P', 'P', 'C', 'C', 'P', 'C', 'P', 'C', 'P', 'P', 'P'),
c(7.1, 3.6, 8.7, 6.3, 4.6, 7.9, 9.3, 6.5,
6.1, 9.1, 6.8, 7.6, 3.5, 4.1, 4.7, 8, 6.1, 5, 8.8,
8.6, 5.3, 6, 2.1, 9.2, 6.4, 4.3, 2.4)))
colnames(cntrydata)<-c('cntry','mode','CPI')
CPI 变量属于class(factor)
,而我需要它是数字才能使以下函数起作用:
boxplot(CPI~mode, data=cntrydata)
我尝试了以下方法:
as.numeric(levels(cntrydata$CPI))[cntrydata$CPI]
正如有关如何在不丢失信息的情况下将因子转换为整数\数字的建议?
但它仍然是阶级因素。任何想法如何达到我的目标?
此外,但不太重要的是,我正在研究如何将colnames
参数包含在数据构造命令中(而不是之后,就像我最终所做的那样)。但找不到如何以及在哪里放置它?