我看过这篇文章(How to access the last value in a vector?),展示了如何使用tail函数。当我将tail应用于某个因子时,它会返回该因子的所有级别,包括要显示的最后一个因子。例如:
x = rep(1:4, 6)
y = rnorm(4*length(x), 0, 0.1)
d = data.frame(ERF=x, y)
d$ERF = factor(d$ERF)
a <- tail(d$ERF, n=1)
> a
[1] 4
Levels: 1 2 3 4
我只想将最后一个因子存储为变量(a)。我可以看到[1]是4但是:
> a[1]
[1] 4
Levels: 1 2 3 4
我看了?tail
,但似乎无法弄明白。我知道它必须简单我只需要朝着正确的方向轻推。感谢
答案 0 :(得分:4)
tail
与任何索引函数一样,返回元素。但是,因子的一个因素仍然是一个因素,因此当您打印它时,将打印所有因子级别。
尽管如此,您可以将该值用作任何其他值。如果要使用值本身,请通过as.character
将其转换为字符串。
如果您想摆脱所有未使用的因子级别,请使用droplevels
:
f = factor(letters)
tail(f)
# [1] u v w x y z
# Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
as.character(tail(f))
# [1] "u" "v" "w" "x" "y" "z"
droplevels(tail(f))
# [1] u v w x y z
# Levels: u v w x y z
答案 1 :(得分:2)
您可以使用factor(a)
> a
[1] 4
Levels: 1 2 3 4
> factor(a)
[1] 4
Levels: 4