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