首页 > 解决方案 > 如何在 R 中将分类变量转换为连续变量?

问题描述

我有一个包含许多变量的数据框,例如百分比、年份、公顷等,但我有一个是距离,我正在评估直接影响(直接受影响的区域)以及这种影响的程度,以直接影响的公里数为单位影响,我将其与对照进行比较。我有:

在这一点上,我的变量是分类的,即使它们代表距离。

 Distances:"dirImpct",1km","2km","3km","4km","5km","6km","7km","8km","9km","10km","20km","30km","40km","50km","60km","70km", "controle")

我想要这样的东西:

Distances:  dirImpct < km < control
DirImpact= distance  0
km= distances, (1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70)
control= distances > 70

标签: rdataframevariablescategorical-datacontinuous

解决方案


您可以转换为factor并重命名levels.

dat$Distances <- factor(dat$Distances)
lvl <- levels(dat$Distances)
levels(dat$Distances)[c(length(lvl) - 1, length(lvl))] <- 
  c("0", "dist > 70")
dat
#             x Distances
# 1  -0.5448391 dist > 70
# 2  -0.7178019       1km
# 3   0.8157044       2km
# 4   0.2789727       3km
# 5   0.4940412       4km
# 6   0.4096203       5km
# 7  -0.9503315       6km
# 8  -0.3750518       7km
# 9   0.3385260       8km
# 10  0.3666900       9km
# 11  0.9265970      10km
# 12  0.2554600      20km
# 13  1.4776808      30km
# 14 -0.3211048      40km
# 15 -0.9469399      50km
# 16 -0.1853323      60km
# 17 -0.4438878      70km
# 18 -1.0206900         0

数据:

dat <- data.frame(x=rnorm(length(Distances)),
           Distances=c("dirImpct","1km","2km","3km","4km","5km","6km","7km",
                      "8km","9km","10km","20km","30km","40km","50km","60km",
                      "70km", "controle")
)

推荐阅读