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

时间:2015-05-13 15:48:08

标签: r string dataframe character

我正在使用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"

2 个答案:

答案 0 :(得分:3)

这是因为您的列是因素。转换为字符,它会按预期工作:

> 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"  

答案 1 :(得分:2)

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

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