我有一个数据框中的一列是数字1、2、3,一直到31。
该列的标题为'game'。
R告诉我,这一列由31个水平的因子组成。
如何将因子转换为数字而不显示水平,以便我可以进行数值分析?
我正在使用R studio。
如果你直接从因子转换成数值类型,它将返回级别而不是实际值。在这种情况下并不重要,因为看起来级别和值是相同的。如果它们不同,你必须先将其转换为字符类型,然后再转换成数值类型。
df$game <- as.numeric(as.character(df$game))
as.matrix
:> e=expand.grid(list(letters[1:2],letters[1:3]))
> str(e)
'data.frame': 6 obs. of 2 variables:
$ Var1: Factor w/ 2 levels "a","b": 1 2 1 2 1 2
$ Var2: Factor w/ 3 levels "a","b","c": 1 1 2 2 3 3
- attr(*, "out.attrs")=List of 2
..$ dim : int [1:2] 2 3
..$ dimnames:List of 2
.. ..$ Var1: chr [1:2] "Var1=a" "Var1=b"
.. ..$ Var2: chr [1:3] "Var2=a" "Var2=b" "Var2=c"
> str(as.matrix(e))
chr [1:6, 1:2] "a" "b" "a" "b" "a" "b" "a" "a" "b" "b" "c" "c"
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:2] "Var1" "Var2"