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