【问题标题】:How do I can tranform a cataegorical variable to continuos variable in R?如何在 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 函数。

标签: r dataframe variables categorical-data continuous


【解决方案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")
)

【讨论】:

    猜你喜欢
    • 2019-11-15
    • 1970-01-01
    • 2019-11-24
    • 2018-05-18
    • 2013-04-15
    • 2020-10-10
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多