如何在 R 中将分类变量转换为连续变量?

Posted

技术标签:

【中文标题】如何在 R 中将分类变量转换为连续变量?【英文标题】:How do I can tranform a cataegorical variable to continuos variable in R? 【发布时间】:2020-09-16 23:06:01 【问题描述】:

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

此时,我的变量是分类的,即使它们代表距离。

 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

【问题讨论】:

我认为您必须删除字母 km 才能使变量在本质上是连续的。看看stringr 库中的str_replace 函数。 【参考方案1】:

您可以转换为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")
)

【讨论】:

以上是关于如何在 R 中将分类变量转换为连续变量?的主要内容,如果未能解决你的问题,请参考以下文章

是否有将分类变量转换为连续变量的 R 函数?

如何将连续变量转换为分类变量?

SPSS:如何将连续变量转换为等级变量?

如何在R中将两个变量(整数)转换为双精度?

怎样在spss中将数值型变量转换成分类变量,比如将年龄转换成年龄段,并记为1,2,3等类

广义与一般线性模型及R使用