我有一个名为diamonds的数据集。它有十个变量:克拉,切割,颜色,清晰度... 那么,我该如何编写代码来找出哪些变量是分类变量。 我现在使用class()函数来找出每个变量的类型,但我怎么让我的程序自动打印它?如何找出R中的分类变量
classVariables = sapply(diamonds, function(x) class(x))
我有一个名为diamonds的数据集。它有十个变量:克拉,切割,颜色,清晰度... 那么,我该如何编写代码来找出哪些变量是分类变量。 我现在使用class()函数来找出每个变量的类型,但我怎么让我的程序自动打印它?如何找出R中的分类变量
classVariables = sapply(diamonds, function(x) class(x))
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(钻石,课)'? –
是的,甚至更好! – neilfws
> 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
坑上,你已经解决您的问题。你的代码完全可以找到每列的类。那么问题是什么? – thelatemail
要找出数据集中的分类变量,可能是'names(which(sapply(diamonds,class)=='factor'))' –
是的,也许这个更准确[R sapply is.factor](https: //stackoverflow.com/questions/19169051/r-sapply-is-factor)。另外[只选择数据框中的数字列](https://stackoverflow.com/questions/5863097/selecting-only-numeric-columns-from-a-data-frame),但因素。 –