使用unclass()函数的目的是什么?以及为什么错误“”列索引必须至多为2,如果是积极的,而不是3,4,5,6,7,8,9,10“

时间:2018-05-01 17:28:17

标签: r

在r中使用unclass()函数的目的是什么?我做不好。
您可以使用下面的代码对其进行删除吗?

unclass(tele%>%mutate(dec=ntile(rev_Range,n=10))%>%count(dec)%>%unname())[[2]]

2 个答案:

答案 0 :(得分:0)

我得到了答案。

因为上面的语句返回数据帧,并且因为我们将数据帧返回给变量,所以它会抛出错误“如果是积极的话,列索引必须至多为2,而不是3,4,5,6,7,8, 9,10,所以我们需要取消它以将数据帧转换为列表。

并且因为unlass返回列表所以我们需要[[2]]来访问返回列表的值

答案 1 :(得分:0)

让我尝试解释'unclass'的用法

让我们假设您具有以下颜色向量:

cores = c('blue','green','red')

还有一组存储为因子的字符串,例如:

val = c('setosa','setosa','virginica','versicolor','virginica','setosa')

val_fac = factor(val)

如果您将unclass应用于这组因子,则unclass会将因子转换为其数量,例如:

unclass(val_fac)

[1] 1 1 3 2 3 1
attr(,"levels")
[1] "setosa"     "versicolor" "virginica" 

通过这些数字,您可以执行以下操作将因子转换为颜色:

cores[unclass(val_fac)]

[1] "blue"  "blue"  "red"   "green" "red"   "blue" 

希望这对您有帮助,

最诚挚的问候,

古斯塔沃