为什么 c(...) 在下面的示例中返回数字而不是字符串?

> Location$NamePrint
[1] Burundi
273 Levels: Afghanistan Africa ...

> ParentLocation$NamePrint
[1] Eastern Africa
273 Levels: Afghanistan Africa ...

> c(Location$NamePrint, ParentLocation$NamePrint)
[1] 36 71

这些数字是琴弦在关卡中的位置?

我的目标是使用 c(Location$NamePrint, ParentLocation$NamePrint) 创建一个包含这两个元素(它们的字符串值)的向量

最佳答案

因为它是一个 factor 。例如:

x <- as.factor("a")
c(x)

# [1] 1

为了解决这个问题,我们可以处理 x as.character :
x <- as.character("a")
c(x)

# [1] "a"

正如@joran 提到的,在 forcats 中也有一个方便的函数 forcats::fct_c()

请参阅 ?c 并阅读详细信息部分以获取更多信息:


x <- as.factor("a")
y <- as.factor("b")

c.factor <- function(..., recursive=TRUE) unlist(list(...), recursive=recursive)

c.factor(x, y)

# [1] a b
# Levels: a b

关于R 返回数字而不是字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49947213/

10-12 19:50