我有一个数据帧,该数据帧由一个ID和一个包含每行矢量列表的列组成。除了我为简单起见在列中放入“向量列表”外,其他类似这样:
id lists
1 123 list of vectors
2 345 list of vectors
3 456 list of vectors
4 789 list of vectors
将每个列表扩展到data.frame中并追加后,lists列的结果进入data.frame中,如下所示:
att1 att2 run
1 600 43 a
2 500 34 b
3 300 54 a
4 300 34 b
5 250 34 a
6 360 34 b
7 700 23 a
8 750 12 b
然后我想做的是包括第一列,每一行所属的ID。在这种情况下,每个id应该运行两次,所以我知道我可以做rep(dt [,1],each = 2)来获得这个信息:
id att1 att2 run
1 123 600 43 a
2 123 500 34 b
3 345 300 54 a
4 345 300 34 b
5 456 250 34 a
6 456 360 34 b
7 789 700 23 a
8 789 750 12 b
,但是我真的希望有一种更好的方法来实现,因为每个id的运行都不同。 (3个运行一个ID,7个运行另一个,等等)
答案 0 :(得分:2)
目前尚不清楚结构。假设lists
是list
s的list
,则
library(tidyverse)
df1 %>%
pull(lists) %>%
set_names(df1$id) %>%
map_df(data.frame, .id = 'id')