如何在R中使用dplyr包将数值列转换为因子?
如果我们在R数据框中有一个数值列,并且该列中唯一值的个数很少,这意味着该数值列可以被视为一个因子。因此,我们可以将数值列转换为因子。要使用dplyr包执行此操作,我们可以使用dplyr包的mutate_if函数。
加载dplyr包并将BOD数据集(在基础R中可用)中的数值列转换为因子列:
示例
library(dplyr) str(BOD) 'data.frame': 6 obs. of 2 variables: $ Time : num 1 2 3 4 5 7 $ demand: num 8.3 10.3 19 16 15.6 19.8 - attr(*, "reference")= chr "A1.4, p. 270" BOD%>%mutate_if(is.numeric,as.factor)
输出
Time demand 1 1 8.3 2 2 10.3 3 3 19 4 4 16 5 5 15.6 6 7 19.8
将甲醛数据集(在基础R中可用)中的数值列转换为因子列:
示例
str(Formaldehyde) 'data.frame': 6 obs. of 2 variables: $ carb : num 0.1 0.3 0.5 0.6 0.7 0.9 $ optden: num 0.086 0.269 0.446 0.538 0.626 0.782 Formaldehyde%>%mutate_if(is.numeric,as.factor)
输出
carb optden 1 0.1 0.086 2 0.3 0.269 3 0.5 0.446 4 0.6 0.538 5 0.7 0.626 6 0.9 0.782
将InsectSprays数据集(在基础R中可用)中的数值列转换为因子列:
示例
str(InsectSprays) 'data.frame': 72 obs. of 2 variables: $ count: num 10 7 20 14 14 12 10 23 17 20 ... $ spray: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 1 1 1 1 1 ... InsectSprays%>%mutate_if(is.numeric,as.factor)
输出
count spray 1 10 A 2 7 A 3 20 A 4 14 A 5 14 A 6 12 A 7 10 A 8 23 A 9 17 A 10 20 A 11 14 A 12 13 A 13 11 B 14 17 B 15 21 B 16 11 B 17 16 B 18 14 B 19 17 B 20 17 B 21 19 B 22 21 B 23 7 B 24 13 B 25 0 C 26 1 C 27 7 C 28 2 C 29 3 C 30 1 C 31 2 C 32 1 C 33 3 C 34 0 C 35 1 C 36 4 C 37 3 D 38 5 D 39 12 D 40 6 D 41 4 D 42 3 D 43 5 D 44 5 D 45 5 D 46 5 D 47 2 D 48 4 D 49 3 E 50 5 E 51 3 E 52 5 E 53 3 E 54 6 E 55 1 E 56 1 E 57 3 E 58 2 E 59 6 E 60 4 E 61 11 F 62 9 F 63 15 F 64 22 F 65 15 F 66 16 F 67 13 F 68 10 F 69 26 F 70 26 F 71 24 F 72 13 F
广告