我有一个如下数据框
> data = data.frame(name = c('Mike', 'Tony', 'Carol', 'Tim', 'Joe'), veh = c('car', 'bike', 'car', 'car', 'cycle') )
> data
name veh
1 Mike car
2 Tony bike
3 Carol car
4 Tim car
5 Joe cycle
> str(data$name)
Factor w/ 5 levels "Carol","Joe",..: 3 5 1 4 2
> str(data$veh)
Factor w/ 3 levels "bike","car","cycle": 2 1 2 2 3
> levels(data$veh)
[1] "bike" "car" "cycle"
默认情况下,因子级别设置为:自行车1,汽车2,自行车3。我需要将因子级别更改为汽车1,自行车2和自行车3-我该如何处理?
tidyverse /forcats
解决方案没什么问题,但是base-R解决方案是按所需顺序使用指定factor()
的levels
参数:
data$veh <- factor(data$veh, levels=c("car","cycle","bike"))
与通常的看法相反,ordered=TRUE
在这种情况下通常没有必要(即使普通因素也有顺序),除非您特别希望将焦点变量视为序数变量(在这种情况下,R将使用正交多项式对比,而不是处理对比) ,默认情况下),或者希望能够对变量使用比较运算符(例如veh > "car"
);如果您不确定,则默认(常规)因子可能很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句