R 处理数据帧列表的列表

R 处理数据帧列表的列表,r,R,- - InputList的长度将始终与丢失的长度相同。 i、 e.输入列表中的向量数将与丢失的长度相同 我必须首先根据向量的第一个元素按递增顺序排列输入列表 i、 e 现在,我必须将InputList的第一个向量的第二个元素相乘,也就是说,它是0.8,与第一个损失列表中所有数据帧的损失列相乘,即损失[[1]] 同样地,将1乘以丢失中所有数据帧的丢失列[[2]] 我希望将结果作为一个类似于原始列表损失的列表,只是每个数据帧的损失列相应地增加或减少。Q1:“我必须首先根据向量的第一个元素按递增顺序

-

-

InputList
的长度将始终与
丢失的长度相同。
i、 e.
输入列表中的向量数将与
丢失的长度相同

我必须首先根据向量的第一个元素按递增顺序排列
输入列表
i、 e

现在,我必须将
InputList
的第一个向量的第二个元素相乘,也就是说,它是0.8,与第一个损失列表中所有数据帧的损失列相乘,即损失[[1]]

同样地,将1乘以丢失中所有数据帧的丢失列[[2]]

我希望将结果作为一个类似于原始列表损失的列表,只是每个数据帧的损失列相应地增加或减少。

Q1:“我必须首先根据向量的第一个元素按递增顺序排列输入列表,即

InputList = list(c(0.9, 0.8), c(1, 1),c(1.5, 1.2))

我清理了格式和一些语法,但我不知道你所说的“…的第一个元素…的第二个元素”是什么意思。另外,在
dput()中提供
loss
格式对任何试图帮助您的人都很有帮助。最后,您想要的结果的模型将有助于解决您描述中可能存在的一些歧义。您可以发布
dput(损失)的输出吗
输入到您的Q中,这样我们就不必创建自己的数据来回答您的问题了?干杯。请查看此问题并相应地编辑您的问题:我认为OP的意思是将第一个列表中的
数据框
列乘以第二个列表向量中的每个值。OP没有指定的是他希望输出的方式-是需要以某种方式排序,还是只需要一个长的积数向量。在
R
中,键入
?dput
以查看其含义。基本上,您可以传递
R
对象
dput(丢失)
,它将向您展示数据在变量中的排列方式,您可以将其复制并张贴在此处,以便我们在计算机中使用您的数据。
list(structure(list(`1` = structure(list(YearID = c(2, 4, 5, 
5, 8, 8, 8, 10, 10, 11, 11, 11, 11, 12, 13, 16, 16, 20, 20), 
    Category = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), class = "factor", .Label = "US HU"), 
    Loss = c(826.795273886473, 357.379257145211, 148.715422723442, 
    654.444727907641, 81.7442792092622, 60.2719188870034, 63.5958204662617, 
    778.976495232166, 1498.90801288032, 66.7270779301846, 123.254304652346, 
    70.8774963289464, 272.579854338023, 77.1420493089197, 305.004836528708, 
    577.173809957773, 137.124412010961, 53.2926961871035, 123.861739643341
    )), .Names = c("YearID", "Category", "Loss"), row.names = c(NA, 
-19L), class = "data.frame"), `2` = structure(list(YearID = c(2, 
9, 9, 11, 12, 13, 15, 17, 19, 19), Category = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), class = "factor", .Label = "US EQ"), 
    Loss = c(2.68952379748490, 42.7690970302631, 10.7816904147645, 
    2.31365444951509, 0.489731609222403, 1.05605200325909, 111.033864050878, 
    123.714557672790, 8.15189312989583, 0.309915764784634)), .Names = c("YearID", 
"Category", "Loss"), row.names = c(NA, -10L), class = "data.frame"), 
    `3` = structure(list(YearID = c(2, 5, 7, 7, 10, 10, 15, 16, 
    20), Category = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L), class = "factor", .Label = "JP EQ"), Loss = c(0.292008160090971, 
    64.6424342762608, 0.609720084708476, 6.73426138743874, 2.99481387294425, 
    12.8309551549701, 0.237315428236897, 1.68697744368254, 1.32834211322205
    )), .Names = c("YearID", "Category", "Loss"), row.names = c(NA, 
    -9L), class = "data.frame")), .Names = c("1", "2", "3")), 
    structure(list(`1` = structure(list(YearID = c(15, 16, 19, 
    2, 4, 5, 5, 8, 8, 8, 10, 10, 11, 11, 11, 11, 12, 13, 16, 
    16, 20, 20), Category = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L), .Label = "US HU", class = "factor"), Loss = c(107.632845241511, 
    192.898254968436, 215.814957575895, 826.795273886473, 357.379257145211, 
    148.715422723442, 654.444727907641, 81.7442792092622, 60.2719188870034, 
    63.5958204662617, 778.976495232166, 1498.90801288032, 66.7270779301846, 
    123.254304652346, 70.8774963289464, 272.579854338023, 77.1420493089197, 
    305.004836528708, 577.173809957773, 137.124412010961, 53.2926961871035, 
    123.861739643341)), .Names = c("YearID", "Category", "Loss"
    ), row.names = c(NA, 22L), class = "data.frame"), `2` = structure(list(
        YearID = c(5, 10, 2, 9, 9, 11, 12, 13, 15, 17, 19, 19
        ), Category = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
        1L, 1L, 1L, 1L, 1L), .Label = "US EQ", class = "factor"), 
        Loss = c(0.60823959378077, 159.862505662270, 2.68952379748490, 
        42.7690970302631, 10.7816904147645, 2.31365444951509, 
        0.489731609222403, 1.05605200325909, 111.033864050878, 
        123.714557672790, 8.15189312989583, 0.309915764784634
        )), .Names = c("YearID", "Category", "Loss"), row.names = c(NA, 
    12L), class = "data.frame"), `3` = structure(list(YearID = c(7, 
    12, 2, 5, 7, 7, 10, 10, 15, 16, 20), Category = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "JP EQ", class = "factor"), 
        Loss = c(0.36180083325003, 11.0977980698104, 0.292008160090971, 
        64.6424342762608, 0.609720084708476, 6.73426138743874, 
        2.99481387294425, 12.8309551549701, 0.237315428236897, 
        1.68697744368254, 1.32834211322205)), .Names = c("YearID", 
    "Category", "Loss"), row.names = c(NA, 11L), class = "data.frame")), .Names = c("1", 
    "2", "3")), structure(list(`1` = structure(list(YearID = c(4, 
    8, 10, 10, 11, 12, 18, 19, 20, 15, 16, 19, 2, 4, 5, 5, 8, 
    8, 8, 10, 10, 11, 11, 11, 11, 12, 13, 16, 16, 20, 20), Category = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L
    ), .Label = "US HU", class = "factor"), Loss = c(72.5266949028921, 
    270.716360695826, 132.256285323478, 49.6754599765934, 134.834496124065, 
    116.106394912601, 409.755636985602, 268.866707090942, 576.441585784339, 
    107.632845241511, 192.898254968436, 215.814957575895, 826.795273886473, 
    357.379257145211, 148.715422723442, 654.444727907641, 81.7442792092622, 
    60.2719188870034, 63.5958204662617, 778.976495232166, 1498.90801288032, 
    66.7270779301846, 123.254304652346, 70.8774963289464, 272.579854338023, 
    77.1420493089197, 305.004836528708, 577.173809957773, 137.124412010961, 
    53.2926961871035, 123.861739643341)), .Names = c("YearID", 
    "Category", "Loss"), row.names = c(NA, 31L), class = "data.frame"), 
        `2` = structure(list(YearID = c(6, 10, 11, 13, 13, 19, 
        5, 10, 2, 9, 9, 11, 12, 13, 15, 17, 19, 19), Category = structure(c(1L, 
        1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
        1L, 1L, 1L), .Label = "US EQ", class = "factor"), Loss = c(3.66830233362805, 
        4.69432002882382, 2.62397430771946, 1.39898268940725, 
        0.239983432670597, 5.89009873171407, 0.60823959378077, 
        159.862505662270, 2.68952379748490, 42.7690970302631, 
        10.7816904147645, 2.31365444951509, 0.489731609222403, 
        1.05605200325909, 111.033864050878, 123.714557672790, 
        8.15189312989583, 0.309915764784634)), .Names = c("YearID", 
        "Category", "Loss"), row.names = c(NA, 18L), class = "data.frame"), 
        `3` = structure(list(YearID = c(1, 2, 7, 11, 14, 15, 
        7, 12, 2, 5, 7, 7, 10, 10, 15, 16, 20), Category = structure(c(1L, 
        1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
        1L, 1L), .Label = "JP EQ", class = "factor"), Loss = c(0.91993405093065, 
        2.72946175093358, 224.426651937984, 0.394821850501270, 
        0.75925338029943, 1.28383204511935, 0.36180083325003, 
        11.0977980698104, 0.292008160090971, 64.6424342762608, 
        0.609720084708476, 6.73426138743874, 2.99481387294425, 
        12.8309551549701, 0.237315428236897, 1.68697744368254, 
        1.32834211322205)), .Names = c("YearID", "Category", 
        "Loss"), row.names = c(NA, 17L), class = "data.frame")), .Names = c("1", 
    "2", "3")))
InputList = list(c(1.5, 1.2), c(0.9, 0.8), c(1, 1))
InputList = list(c(0.9, 0.8), c(1, 1),c(1.5, 1.2))
 newInput <- InputList[order(sapply(InputList, "[[", 1))]
 newInput
[[1]]
[1] 0.9 0.8

[[2]]
[1] 1 1

[[3]]
[1] 1.5 1.2
ddapply <- function(dfrmlist,fac){ 
         lapply(dfrmlist, 
             function(dfrm){ dfrm[, "Loss"] <- dfrm[ ,"Loss"]*fac; return(dfrm)})}
mapply( ddapply,  Losses, sapply(newInput, "[[", 2) )
> mapply( ddapply,  Losses, sapply(newInput, "[[", 2) )[2,1]

$`2`
   YearID Category       Loss
1       2    US EQ  2.1516190
2       9    US EQ 34.2152776
3       9    US EQ  8.6253523
4      11    US EQ  1.8509236
5      12    US EQ  0.3917853
6      13    US EQ  0.8448416
7      15    US EQ 88.8270912
8      17    US EQ 98.9716461
9      19    US EQ  6.5215145
10     19    US EQ  0.2479326