R 将数据帧转换为主题化列表

R 将数据帧转换为主题化列表,r,list,dropdown,R,List,Dropdown,尽管有很多关于这个话题的问题;我似乎找不到正确的问题答案。所以我把这个问题直接问你们 上下文: 我有一个数据集,有很多行(+150K),有32个对应的列。第二列是文档编号。文档编号不是唯一的ID。因此,日期包含多行具有相同文档编号的行。我想创建一个文档编号列表。此文档编号列表包含另一个具有相同文档编号的对应行的列表 例如: 下面是一个数据示例(我包括了下面示例的dput输出) 这就是我要找的。我需要一个包含3个文件(a、B、C)的列表。每个列表都需要包含另一个包含相应行的列表。例如,主列表(比如

尽管有很多关于这个话题的问题;我似乎找不到正确的问题答案。所以我把这个问题直接问你们

上下文: 我有一个数据集,有很多行(+150K),有32个对应的列。第二列是文档编号。文档编号不是唯一的ID。因此,日期包含多行具有相同文档编号的行。我想创建一个文档编号列表。此文档编号列表包含另一个具有相同文档编号的对应行的列表

例如: 下面是一个数据示例(我包括了下面示例的
dput
输出)

这就是我要找的。我需要一个包含3个文件(a、B、C)的列表。每个列表都需要包含另一个包含相应行的列表。例如,主列表(比如说
my_list
)应该有3个列表A、B和C;每个列表应分别包含3个、2个和4个列表

希望我问的问题足够清楚(如果不是,请让我知道)

在这里您可以找到示例数据:

structure(list(Document_Number = structure(c(1L, 1L, 1L, 2L, 
2L, 3L, 3L, 3L, 3L), .Label = c("A", "B", "C"), class = "factor"), 
    Col.A = structure(c(4L, 7L, 3L, 8L, 6L, 1L, 9L, 2L, 5L), .Label = c("random_19367", 
    "random_48038", "random_48640", "random_56681", "random_62999", 
    "random_72045", "random_78738", "random_96243", "random_96778"
    ), class = "factor"), Col.B = structure(c(4L, 3L, 5L, 9L, 
    7L, 1L, 2L, 8L, 6L), .Label = c("random_20441", "random_22161", 
    "random_23098", "random_24984", "random_32375", "random_44561", 
    "random_52583", "random_95644", "random_96927"), class = "factor")), class = "data.frame", row.names = c(NA, 
-9L))

您可以像这样使用
split

split(x, x$Document_Number)
#$A
#  Document_Number        Col.A        Col.B
#1               A random_56681 random_24984
#2               A random_78738 random_23098
#3               A random_48640 random_32375
#
#$B
#  Document_Number        Col.A        Col.B
#4               B random_96243 random_96927
#5               B random_72045 random_52583
#
#$C
#  Document_Number        Col.A        Col.B
#6               C random_19367 random_20441
#7               C random_96778 random_22161
#8               C random_48038 random_95644
#9               C random_62999 random_44561

一个选项是
group\u split

library(dplyr)
df1 %>%
    group_split(Document_Number)

谢谢你的帮助,到目前为止一切顺利!但我还有一个问题。假设在第一列和第二列之间插入一列,其值为(1,2,3,4,5,6,7,8,9)。是否可以展开第一个列表,然后在第二个(新列)上分别排序/拆分3、2、4个列表?您可以使用
lappy(拆分(x,x$Document\u Number),函数(y)拆分(y,y$secondColumn))
library(dplyr)
df1 %>%
    group_split(Document_Number)