我有一个包含4个不同列的数据框:两列是数字,每列都有自己的3个连续数值,另两列是字符,也有自己的3个变量。所有四列都有3个级别。
我正在尝试将所有列都转换为因子,并使用data.matrix函数将所有变量转换为数字形式。但是,只有两个带有字符的列变成了因子并成功转换为数字形式,并且两个数字形式保持不变。如何将所有列转换为因数并将其转换为数字形式,而不是逐列进行?
这就是我想要的
price privacy battery stars
1 2 3 1 1
2 3 1 2 2
3 1 2 3 3
4 1 2 2 1
5 2 3 3 2
6 3 1 1 3
7 3 1 3 1
8 1 2 1 2
9 2 3 2 3
10 1 1 1 2
11 2 2 2 3
12 3 3 3 1
13 3 3 2 2
14 1 1 3 3
15 2 2 1 1
16 2 2 3 2
17 3 3 1 3
18 1 1 2 1
19 3 2 1 3
20 1 3 2 1
21 2 1 3 2
22 2 1 2 3
23 3 2 3 1
24 1 3 1 2
25 1 3 3 3
26 2 1 1 1
27 3 2 2 2
使用mtcars
数据集:
library(dplyr)
mtcars %>% mutate_all(., as.factor) %>% glimpse
或基数R
data.frame(lapply(mtcars, as.factor))