【问题标题】:How to find out the categorical variables in R [duplicate]如何找出R中的分类变量[重复]
【发布时间】:2017-09-14 03:19:59
【问题描述】:

我有一个名为 diamonds 的数据集。它有十个变量:克拉、切工、颜色、净度…… 那么,我如何编写代码来找出哪些变量是分类变量。 我现在使用 class() 函数来找出每个变量的类型,但是我怎样才能让我的程序自动打印呢?

classVariables = sapply(diamonds, function(x) class(x))

【问题讨论】:

  • 等一下,你已经解决了你的问题。您的代码非常适合找出每列的类。那么问题是什么?
  • 要找出数据集中的分类变量,也许,names(which(sapply(diamonds, class) == "factor"))
  • 是的,也许这个更准确R sapply is.factor。也可以Selecting only numeric columns from a data frame,但要考虑因素。

标签: r categorical-data


【解决方案1】:
> str(diamonds)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   53940 obs. of  10 variables:
 $ carat  : num  0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
 $ cut    : Ord.factor w/ 5 levels "Fair"<"Good"<..: 5 4 2 4 2 3 3 3 1 3 ...
 $ color  : Ord.factor w/ 7 levels "D"<"E"<"F"<"G"<..: 2 2 2 6 7 7 6 5 2 5 ...
 $ clarity: Ord.factor w/ 8 levels "I1"<"SI2"<"SI1"<..: 2 3 5 4 2 6 7 3 4 5 ...
 $ depth  : num  61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
 $ table  : num  55 61 65 58 58 57 57 55 61 61 ...
 $ price  : int  326 326 327 334 335 336 336 337 337 338 ...
 $ x      : num  3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
 $ y      : num  3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
 $ z      : num  2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...
> ?str

【讨论】:

    【解决方案2】:
    sapply(colnames(diamonds), function(x) class(diamonds[[x]]))
    
    $carat
    [1] "numeric"
    
    $cut
    [1] "ordered" "factor" 
    
    $color
    [1] "ordered" "factor" 
    
    $clarity
    [1] "ordered" "factor" 
    
    $depth
    [1] "numeric"
    
    $table
    [1] "numeric"
    
    $price
    [1] "integer"
    
    $x
    [1] "numeric"
    
    $y
    [1] "numeric"
    
    $z
    [1] "numeric"
    

    【讨论】:

    • sapply(diamonds, class) ?
    • 是的,更好!
    猜你喜欢
    • 2016-04-12
    • 2018-08-14
    • 1970-01-01
    • 2015-08-17
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多