R:将 data.frame 的字符列合并为一个向量

R: Combine character columns of data.frame into one vector

我正在使用 R 并尝试将数据框的两个字符列组合成一个向量。让我们说,这是我的数据

a = c("one", "two", "three")
b = c("four", "five", "six")
data = data.frame(a,b)

现在我试试

c(data$a, data$b)

c(data[,"a"], data[,"b"])

都给我 [1] 1 3 2 2 1 3

这是什么?

我期望并且我想要与来自

相同的输出
c(a,b)

[1] "one" "two" "three" "four" "five" "six"

那是因为你的列是因子。转换为字符,它会如您所愿地工作:

> data[] <- lapply(data, as.character)
> c(data$a, data$b)
[1] "one"   "two"   "three" "four"  "five"  "six"  

当然,您可以随时这样做:

> as.character(unlist(data))
[1] "one"   "two"   "three" "four"  "five"  "six"  

当您创建数据框时,您的向量将存储为因子,而不是字符。您必须指定您想要带有

的字符
 data = data.frame(a,b, stringsAsFactors=F)