使用cut()进行装箱后重命名R中的值
我有一个我想用cut()存储的数值列表。现在,每一行都已替换为它所属的范围,其形式为使用括号的范围,例如,[0140]表示介于0和140之间(包括0和140) 问题是这些名称很长,最终需要指数表示法,使它们更长,并且使图形难以辨认。使用typeof()看起来它仍然是整数形式,但我不知道如何使用因子重命名它们。当我尝试使用factor()和labels参数时,我被告知排序只对原子列表有效 作为一个示例,以下是我在数据集上尝试的内容,除了内置的iris数据集:使用cut()进行装箱后重命名R中的值,r,R,我有一个我想用cut()存储的数值列表。现在,每一行都已替换为它所属的范围,其形式为使用括号的范围,例如,[0140]表示介于0和140之间(包括0和140) 问题是这些名称很长,最终需要指数表示法,使它们更长,并且使图形难以辨认。使用typeof()看起来它仍然是整数形式,但我不知道如何使用因子重命名它们。当我尝试使用factor()和labels参数时,我被告知排序只对原子列表有效 作为一个示例,以下是我在数据集上尝试的内容,除了内置的iris数据集: data(iris) iris[1]
data(iris)
iris[1] <- cut(iris[[1]], 10, include.lowest=TRUE)
iris[1] <- factor(iris[1], labels = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"))
这是一个因素。这就是
cut
所做的:把一个数字变成一个因子。因此,使用它的labels
参数,就像使用factor
一样。我尝试将labels参数与factor一起使用,但它告诉我它只适用于原子列表。你知道如何克服这一点吗?任何因素都一样,因为它们存储为整数。如果调用类
或is.factor
查看它是否是一个因子。除此之外,如果你想要一个答案,你需要做出决定。也许我没有正确地遵循惯例,但是你能看看我在文章底部编辑的例子吗?它基本上显示了除了iris数据集之外我的步骤。如果使用一个括号和一个维度进行子集,iris
将保持其结构为data.frame,而不是下降到向量。使用iris[[1]]
,iris[,1]
或iris$Sepal.Length
。
Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?