繁体   English   中英

r - 将因子转换为数字并删除级别

[英]r - convert factor to numeric and remove levels

我的数据框中有一列是数字 1、2、3,直到 31。

列标题为“游戏”

R 告诉我这一列由 31 个级别的因素组成。

在此处输入图像描述

如何在不显示级别的情况下将因子转换为数字,以便进行数字分析?

如果有帮助的话,我正在使用 R 工作室。

如果直接从因子转换为数值,它将返回级别而不是实际值。 这里没关系,因为看起来级别和值都相同。 如果它们不同,则必须先转换为字符,然后再转换为数字。

df$game <- as.numeric(as.character(df$game))

如果您有一个 dataframe 的因子在每列中具有相同类型的数据,那么您可以使用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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM