我有一个从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
周期)
答案 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=", ")