我有一个数据框,该数据框的一列中有数字矢量,并且想将该列拆分为多列。以下是带有两个列df
和a
的数据帧b
的示例。每列由x
和y
值的向量组成。我想将数值向量分成两列x
和y
。该示例只有两列a
和b
,但可以有更多列。
到目前为止,我发现可以使用tidyr:基于单独的字符串的向量,但不能使用数字向量。对于基于字符串的向量,本文也提出了类似的问题。 R Split a column containing a vector into multiple columns。在这篇文章中提出了另一个直接相关的问题。 https://community.rstudio.com/t/split-a-column-each-element-is-a-vector-to-multiple-columns/14009/6。我想知道是否有更好的方法。
df <- tribble(
~a, ~b,
c(1.2, 2.3), c(1.3, 2.4),
c(3.4, 4.5), c(5.6, 7.8))
预期的数据框将是具有四列的数据框。
a.x a.y b.x b.y
1.2 2.3 1.3 2.4
3.4 4.5 5.6 7.8
答案 0 :(得分:0)
这有点难看,但是应该可以工作:
df %>%
mutate_all(~ map_chr(., paste, collapse = ",")) %>%
separate(a, into = c("a.x", "a.y"), sep = ",") %>%
separate(b, into = c("b.x", "b.y"), sep = ",") %>%
mutate_all(as.numeric)
答案 1 :(得分:0)
我在这里借用马库斯的答案。
as.data.frame(lapply(df, function(x) t(do.call(cbind, x))))