如何在 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 中将分类变量转换为连续变量?的主要内容,如果未能解决你的问题,请参考以下文章