我现在正在学习R,并且意识到当我附加到一个因子时,它就变成了一个字符。即使我没有指定因子水平,也会发生这种情况。当我查看数字的顺序时,我看到它们对应于“因子水平”,例如,小是1。但是,我想知道为什么在使用这种方法附加到向量时会发生这种情况。
size_order <- factor(c("small", "medium", "large", "medium", "small", "small"), levels = c("small", "medium", "large"))
size order
> [1] small medium large medium small small
> Levels: small medium large huge
typeof(size_order)
> integer
字符串
但是当我追加到它的时候,它就变成了一个字符:
size_order <- append(size_order, "small")
size order
> "1" "2" "3" "2" "1" "1" "small"
typeof(size_order)
> [1] "character"
型
1条答案
按热度按时间suzh9iv81#
?c
的文档说明:这是一个将其参数组合在一起的通用函数。
预设方法会将其参数结合起来,以形成向量。所有参数都被强制转换为返回值的公共类型,并且除名称外的所有属性都将被删除。
请注意,所有属性都被剥离。您正在连接因子和字符。因子在内部存储为整数。这将被强制转换为一个字符,以便将两者结合起来。
若要取得您想要的结果,请考虑胁迫第二个字串在串连之前进行系数化。即
字符串
其与以下内容相同:
型