根据最大值在列表中获取每个数据帧的一行,并将它们全部放在R中的一个新数据帧中
经过一些来之不易的(对我来说,是初学者)数据清理之后,我现在有了一个来自一系列测量的数据帧列表。 现在,我想创建一个新的数据帧,根据其中一个数据帧列中的最大值,只包含每个数据帧的一行 这是其中一个数据帧的外观:根据最大值在列表中获取每个数据帧的一行,并将它们全部放在R中的一个新数据帧中,r,R,经过一些来之不易的(对我来说,是初学者)数据清理之后,我现在有了一个来自一系列测量的数据帧列表。 现在,我想创建一个新的数据帧,根据其中一个数据帧列中的最大值,只包含每个数据帧的一行 这是其中一个数据帧的外观: list(`PA309 ref 6M` = structure(list(Wavelength = c(300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
list(`PA309 ref 6M` = structure(list(Wavelength = c(300, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
393, 394, 395, 396, 397, 398, 399, 400), mean = c(88050, 97825.5555566667,
107833.333333333, 119161.333333333, 129208.666666667, 141178,
152646, 165915.333333333, 178684.666666667, 193356, 208148.666666667,
224309.333333333, 240792, 258300.666666667, 276427.333333333,
296127.333333333, 316690, 337663.333333333, 359532.666666667,
382843.333333333, 404855.333333333, 427523.333333333, 449951.333333333,
472048.666666667, 494241.333333333, 517214, 540008.666666667,
561769.333333333, 584009.333333333, 604872.666666667, 624645.333333333,
643634.666666667, 663086, 680633.333333333, 697850, 714818, 730947.333333333,
745414, 759252.666666667, 771539.333333333, 782828.666666667,
791684, 801654, 810408.666666667, 817966, 825253.333333333, 832820.666666667,
837431.333333333, 841400, 844329.333333333, 845598.666666667,
845490, 844946.666666667, 843556.666666667, 841356.666666667,
838448, 833467.333333333, 827916.666666667, 821100, 813840, 805648,
797787.333333333, 788737.333333333, 777954, 766898, 754910, 742837.333333333,
729848.666666667, 717330.666666667, 703432.666666667, 688858,
674260.666666667, 659590.666666667, 645462, 630890.666666667,
615532, 600835.333333333, 585797.333333333, 570038.666666667,
554375.333333333, 540131.333333333, 525104, 509776.666666667,
494048, 479012, 463121.333333333, 446361.333333333, 430677.333333333,
415540, 400765.333333333, 386695.333333333, 373296.666666667,
360028, 347335.333333333, 335207.333333333, 323443.333333333,
311976.666666667, 301112.666666667, 290682, 279893.333336667,
270703.333333333), SD = c(29278.3315781484, 30734.6965259783,
33040.5893611681, 34965.2122163349, 37698.2139806826, 40544.9920952021,
44136.8343223662, 46942.9836858857, 50872.345034737, 54411.1411753145,
58531.3961676409, 62377.0203306741, 67330.151670704, 71783.6371698546,
77553.6550352937, 83633.3218121422, 89456.9806555084, 95870.7618063679,
101839.724613401, 107605.328982041, 113338.684310933, 119160.565445676,
125450.911679961, 132390.528488005, 139801.985484232, 147083.488305112,
154968.465764275, 160362.050826663, 166471.876127271, 171326.942356809,
177255.842412411, 182705.852345603, 188275.117920558, 194214.563515029,
199580.318939519, 204775.793227618, 209229.729554223, 214325.21399966,
218498.795688519, 222776.371829091, 225607.005426102, 229513.476135934,
233571.284613499, 236523.371634461, 238111.11168528, 241117.689581941,
242808.673999372, 244252.288401426, 245670.066560825, 247515.052894432,
246855.961380991, 247657.976984389, 247520.093813277, 246938.212404102,
246803.342378772, 246951.003269879, 244932.72848138, 243787.061595429,
241813.833409092, 239799.79150116, 237645.340985259, 235767.877339839,
233018.855385854, 230730.249260906, 227480.318164012, 223401.186863454,
219657.618582496, 215796.397980442, 211662.799058628, 208152.607145174,
204022.324896076, 199464.996651877, 194877.357046254, 191649.674364451,
187410.709516114, 183223.929758097, 179780.148874489, 175469.891278627,
169521.285322326, 164389.614104217, 160913.012231247, 156156.265439463,
151334.503803109, 147576.986512125, 143293.528297687, 137884.012609633,
132944.821340785, 128895.403367744, 124638.695564419, 120372.111127675,
116247.889276895, 112202.576446949, 108264.290345432, 104680.172570231,
101703.163693827, 97789.5803106514, 95186.746752546, 92071.7810479049,
88782.5669374343, 86450.4548513189, 83008.6419195817), `SD%` = c(0.332519381921049,
0.314178604466753, 0.306404229006196, 0.293427500668574, 0.291762270699199,
0.287190582776368, 0.28914504358035, 0.282933365728016, 0.28470459152289,
0.281403944927049, 0.28119995724678, 0.278084818869214, 0.279619554099405,
0.277907285707824, 0.280557114595374, 0.282423513124339, 0.282474914444752,
0.283924111214428, 0.283255831959824, 0.281068833157274, 0.27994860133809,
0.27872295183657, 0.278809956513729, 0.28045949038024, 0.28286178442697,
0.284376463717363, 0.286974034548103, 0.285458890885221, 0.285050026815674,
0.283244642712916, 0.283770378090411, 0.28386577325274, 0.283937706301382,
0.285343890761099, 0.285993148870844, 0.286472631113959, 0.286244603424537,
0.287525071972971, 0.28778140042338, 0.288742727952203, 0.288194614010178,
0.289905411926898, 0.291361715420242, 0.291856912892254, 0.291101478160804,
0.292174148037703, 0.291549770217885, 0.29166843737408, 0.291977735394372,
0.29314989201816, 0.291930405181565, 0.292916506386106, 0.29294167736024,
0.29273458697195, 0.293339735877498, 0.294533475266062, 0.293872019556911,
0.294458453864635, 0.294499858006445, 0.294652255358744, 0.294974158671354,
0.295527225726621, 0.295432770249479, 0.296585979712048, 0.296623955420423,
0.295930888269402, 0.29570083344738, 0.295672798809126, 0.295070054710187,
0.295909782142391, 0.296174719457531, 0.295827721403311, 0.295451962701495,
0.296918601504737, 0.29705734989916, 0.297667594468032, 0.299217004894001,
0.299540269806556, 0.297385590197961, 0.296531256388662, 0.297914603913456,
0.297381595720967, 0.296864320590931, 0.298709814657939, 0.299143921859342,
0.297727620572361, 0.297841258668131, 0.299285319638547, 0.299943917708089,
0.300355597442747, 0.300618805701203, 0.300572135960537, 0.300710751234437,
0.301380719219172, 0.303403755169915, 0.302339143314083, 0.305108544717701,
0.305771862961278, 0.305428498969438, 0.30886928895635, 0.306640634592291
)), row.names = c(NA, 101L), class = "data.frame"))
准确地说,我想在“mean”
列中找到最大值(我想我会使用which.max
?),并将整行复制到新的数据框中,同时在各个数据框的名称所在的位置添加一列。
对于本例,我想要的行是:
350 845598.67 246855.96 0.2919304
添加数据帧名称我希望它看起来像这样:
350 845598.67 246855.96 0.2919304 "PA309 ref 6M"
我该如何编写一个函数来实现这个技巧,然后我可以将它应用到我的列表中?
感谢任何和所有方向的解决方案 试试:
library(dplyr)
library(purrr)
df <- df_list %>%
imap_dfr(~.x %>% slice(which.max(mean)) %>% mutate(df_from = .y))
库(dplyr)
图书馆(purrr)
df%
imap_dfr(~.x%>%切片(其中.max(平均值))%>%突变(df_from=.y))
试试:
library(dplyr)
library(purrr)
df <- df_list %>%
imap_dfr(~.x %>% slice(which.max(mean)) %>% mutate(df_from = .y))
库(dplyr)
图书馆(purrr)
df%
imap_dfr(~.x%>%切片(其中.max(平均值))%>%突变(df_from=.y))