R-将列值嵌套到向量的单个列(类型列表)中
我尝试创建数据框中所有列的序列,如下所示:R-将列值嵌套到向量的单个列(类型列表)中,r,dplyr,tidyverse,purrr,R,Dplyr,Tidyverse,Purrr,我尝试创建数据框中所有列的序列,如下所示: df <- data.frame(label = c("ger", "at", "uk", "us"), a = c(1,2,3,4), b = c(2,3,5,1), c = c(5,6,2,1)) label data <chr> <list>
df <- data.frame(label = c("ger", "at", "uk", "us"),
a = c(1,2,3,4),
b = c(2,3,5,1),
c = c(5,6,2,1))
label data
<chr> <list>
1 ger <dbl [3]>
2 at <dbl [3]>
3 uk <dbl [3]>
4 us <dbl [3]>
df%
嵌套(数据=c(a,b,c))
标签数据
1格
2在
3英国
4美国
我要的不是tibble,而是向量。应该是这样的:
df <- data.frame(label = c("ger", "at", "uk", "us"),
a = c(1,2,3,4),
b = c(2,3,5,1),
c = c(5,6,2,1))
label data
<chr> <list>
1 ger <dbl [3]>
2 at <dbl [3]>
3 uk <dbl [3]>
4 us <dbl [3]>
标签数据
1格
2在
3英国
4美国
有人知道如何归档吗?一个dplyr
和purrr
选项可以是:
df %>%
transmute(label,
data = pmap(across(-label), ~ c(...)))
label data
1 ger 1, 2, 5
2 at 2, 3, 6
3 uk 3, 5, 2
4 us 4, 1, 1
如果需要未命名的向量:
df %>%
transmute(label,
data = pmap(across(-label), ~ unname(c(...))))
我们可以从dplyr
library(dplyr)
df %>%
rowwise %>%
transmute(label, data = list(c_across(a:c))) %>%
ungroup
-输出
# A tibble: 4 x 2
# label data
# <chr> <list>
#1 ger <dbl [3]>
#2 at <dbl [3]>
#3 uk <dbl [3]>
#4 us <dbl [3]>
#一个tible:4 x 2
#标签数据
#
#1格
#2在
#3英国
#4美国
也很接近,但仍然保留列表的名称。我想用unname
会的。我如何在这里传递那个参数?它是一个命名向量,是的。你特别需要一个未命名的向量吗?最好,是:-)更新了帖子。对不起,你的也很好,但是akruns正是我想要的解决方案