R:将data.frame的字符列组合成一个向量

R:将data.frame的字符列组合成一个向量,r,string,dataframe,character,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) 或 都给我 [1]123213 这是什么 我期望并且我想要的输出与 c(a,b) 即“一”“二”“三”“四”“五”“六”这是因为您的列是因素。转换为字符,它将按预期工作: > data[] <-

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

a = c("one", "two", "three")
b = c("four", "five", "six")
data = data.frame(a,b)
现在我试着

c(data$a, data$b)

都给我
[1]123213

这是什么

我期望并且我想要的输出与

c(a,b)

即“一”“二”“三”“四”“五”“六”这是因为您的列是因素。转换为字符,它将按预期工作:

> data[] <- lapply(data, as.character)
> c(data$a, data$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"  

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

 data = data.frame(a,b, stringsAsFactors=F)

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

 data = data.frame(a,b, stringsAsFactors=F)

多谢各位+1.有两个同时到达的答案,很难决定接受哪一个。@lanenok,这个答案从源头上解决了问题,而我的答案提供了一个解决方案,如果你遇到这样的问题。因此,它们在概念上是不同的,你应该利用概念上的差异来决定哪一个最适合你的情况。谢谢+1.有两个同时到达的答案,很难决定接受哪一个。@lanenok,这个答案从源头上解决了问题,而我的答案提供了一个解决方案,如果你遇到这样的问题。因此,它们在概念上是不同的,你应该利用概念上的差异来决定哪一个最适合你的情况。谢谢+1.对于两个同时到达的答案,很难决定接受哪一个。在我的实际问题中,我从数据帧开始(而不是像问题中的一个小的可复制示例那样的两个向量)。所以我决定知道如何将数据帧转换为字符对我帮助更大。谢谢+1.对于两个同时到达的答案,很难决定接受哪一个。在我的实际问题中,我从数据帧开始(而不是像问题中的一个小的可复制示例那样的两个向量)。所以我决定知道如何将数据帧转换为字符对我帮助更大。