R:将所有数据帧行转换为字符向量

时间:2018-10-05 22:06:04

标签: r dataframe matrix type-conversion row

我有一个从combinations函数返回的矩阵,类似:

combinations(3, 2, v=c("Yes", "No", "Maybe"))

这将返回一个包含2列的矩阵,其中包含3个字符串的2-by-2组合:

     [,1]    [,2] 
[1,] "Maybe" "No" 
[2,] "Maybe" "Yes"
[3,] "No"    "Yes"

我想创建一个数据框(或小标题),例如:

    values
[1] c("Maybe", "No")
[2] c("Maybe", "Yes")
[3] c("No", "Yes")

只有一列包含带有原始列的向量。 我需要用它来sapply到每一行一个函数。

有一个优雅的解决方案吗? (例如,没有for周期)

1 个答案:

答案 0 :(得分:2)

我们可以按行split并将其tibble列的“值”转换为list

library(tidyverse)
library(gtools)
combinations(3, 2, v = c("Yes", "No", "Maybe")) %>% 
   split(seq_len(nrow(.))) %>%
   tibble(values = .)

或者另一种选择是通过unit设置每一行的元素来创建字符串

combinations(3, 2, v = c("Yes", "No", "Maybe")) %>% 
   as_tibble %>%
   unite(values, V1, V2, sep=", ")