Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将data.frame数据添加到输出列表的最佳方法?_R_List_Dataframe - Fatal编程技术网

将data.frame数据添加到输出列表的最佳方法?

将data.frame数据添加到输出列表的最佳方法?,r,list,dataframe,R,List,Dataframe,我有一个主数据框,我想从中提取数据: position = c(1:20) transfer_budget = seq(100, 10, length.out=20) df = data.frame(position, transfer_budget) rownames(df) = c("CHE","TOT","MCY","LIV", "MUN", "ARS", "EVE", "WBA", "STK", "SOU", "BOU", "WHM", "BUR", "WAT", "LEI", "CR

我有一个主数据框,我想从中提取数据:

position = c(1:20)
transfer_budget = seq(100, 10, length.out=20)

df = data.frame(position, transfer_budget)
rownames(df) = c("CHE","TOT","MCY","LIV", "MUN", "ARS", "EVE", "WBA", "STK", "SOU", "BOU", "WHM", "BUR", "WAT", "LEI", "CRY", "SWA", "HUL", "MID", "SUN")
我创建了一个相当复杂的代码,将某些足球队划分为若干组,并以列表的形式输出

my_list = list()
my_list[[1]] = c("MUN","MCY","CHE","ARS","LIV")
my_list[[2]] = c("BUR","SOU","BOU","STK","ARS")
my_list[[3]] = c("EVE","SUN","SWA","HUL","LEI")
my_list[[4]] = c("MCY","LIV","CHE","WBA")
my_list[[5]] = c("LEI","TOT","BOU")
我想在添加额外数据时扩展输出,但是我不确定最有效的方法是什么?我将如何添加该职位并将_预算转移到我的_列表中


目前我将团队名称作为行名称,在数据框中将它们作为列是否更好?我最初的想法是将输出列表转换为转置矩阵,然后匹配值,然后cbind,但我不想养成坏习惯。

我们可以通过在
列表上循环,将
与数据集'df'的行名匹配,并创建
数据.frame

my_list1 <- lapply(my_list, function(x) {
           `row.names<-`(transform(df[match(x, row.names(df)),], teamNames = x), NULL)})
my_list1[[1]]
#   position transfer_budget teamNames
#1        5        81.05263       MUN
#2        3        90.52632       MCY
#3        1       100.00000       CHE
#4        6        76.31579       ARS
#5        4        85.78947       LIV

my_list1是否有任何模式可以将每个
list
元素分组不特别是,我应该注意到我的列表在我的模型中也有不同的长度。我猜您希望添加position和transfer_budget的匹配元素,对吗?是的!实际上,我有更多的数据,但没有必要在上面添加。
lappy(我的列表,函数(x)df[match(x,row.names(df)),c(“position”,“transfer\u budget”))
初学者问题,但是你如何将团队名称作为第一列?@Aesler你可以做
cbind
lappy(我的列表,函数(x){cbind(TeamNames=x,df[匹配(x,row.names(df)),]})