R - 改变 table 的顺序

R - Alter the order of a table

我有这个数据集

structure(list(Data = structure(c(18750, 18750, 18750, 18750, 
18751, 18751, 18751, 18753, 18753, 18753), class = "Date"), `Retorno D` = c(NA, 
NA, NA, NA, "211.52430499997001", "134.38776799989901", "361.888238000218", 
"180.13891600002501", "100.33839799999301", "211.93803400010799"
), `Retorno D-1` = c("99.984314000001206", "361.888238000218", 
"178.550884000026", "134.38776799989901", "211.68034700001601", 
"134.488129999954", "366.99624599982099", "180.19407399999901", 
"99.281853999942498", "212.32330200006299"), `Retorno D-2` = c("100.053130000015", 
"366.99624599982099", "178.66752699995399", "134.488129999954", 
"211.93803400010799", "135.426288000075", "370.97650599991903", 
"180.04651900008301", "99.524296000017799", "212.53238200000499"
), `Retorno D-3` = c("100.33839799999301", "370.97650599991903", 
"180.13891600002501", "135.426288000075", "212.32330200006299", 
"135.494221000001", "384.43776899995299", "180.77143500000199", 
"98.068665000028005", "212.47239700006301"), `Retorno D-4` = c("99.281853999942498", 
"384.43776899995299", "180.19407399999901", "135.494221000001", 
"212.53238200000499", "135.49586799996899", "384.95722099999", 
"180.892560000066", "97.002081000013305", "212.127748999977"), 
    `Retorno D-5` = c("99.524296000017799", "384.95722099999", 
    "180.04651900008301", "135.49586799996899", "212.47239700006301", 
    "135.91781000001399", "389.875897000078", "181.13978999992801", 
    "96.906087000039406", "211.97024699999"), `Retorno D-6` = c("98.068665000028005", 
    "389.875897000078", "180.77143500000199", "135.91781000001399", 
    "212.127748999977", "135.95332000008801", "384.63738099997897", 
    "180.67245199997001", "97.756707999971695", "211.974497999996"
    ), `Retorno D-7` = c("97.002081000013305", "384.63738099997897", 
    "180.892560000066", "135.95332000008801", "211.97024699999", 
    "136.125711000059", "382.70317400014", "180.443010000046", 
    "95.985452000051694", "212.16175900003901"), `Retorno D-8` = c("96.906087000039406", 
    "382.70317400014", "181.13978999992801", "136.125711000059", 
    "211.974497999996", "135.85074999998301", "385.90785099985101", 
    "179.39680900005601", "99.4912189999595", "212.284718000097"
    ), `Retorno D-9` = c("97.756707999971695", "385.90785099985101", 
    "180.67245199997001", "135.85074999998301", "212.16175900003901", 
    "135.62111099995701", "384.26056599989499", "180.28261399990899", 
    "98.902974999975399", "212.40417600004"), `Retorno D-10` = c("95.985452000051694", 
    "384.26056599989499", "180.443010000046", "135.62111099995701", 
    "212.284718000097", "135.11656800005599", "387.22270599985501", 
    "179.39689900004299", "100.108439999982", "212.53214300004799"
    ), `Retorno D-11` = c("99.4912189999595", "387.22270599985501", 
    "179.39680900005601", "135.11656800005599", "212.40417600004", 
    "135.69338999991299", "383.375612000003", "178.67337099998301", 
    "103.04777499998499", "212.45787100005001"), `Retorno D-12` = c("98.902974999975399", 
    "383.375612000003", "180.28261399990899", "135.69338999991299", 
    "212.53214300004799", "135.147547000088", "386.48408799991", 
    "178.90612499997999", "101.79547500005", "212.42134299990701"
    ), `Retorno D-13` = c("100.108439999982", "386.48408799991", 
    "179.39689900004299", "135.147547000088", "212.45787100005001", 
    "134.77858299994799", "375.97806099988497", "178.85069500002999", 
    "107.50475800002501", "212.90102200000501"), `Retorno D-14` = c("103.04777499998499", 
    "375.97806099988497", "178.67337099998301", "134.77858299994799", 
    "212.42134299990701", "134.97121299989499", "377.425079000182", 
    "179.95594400004501", "106.985060999985", "213.03338199993601"
    ), `Retorno D-15` = c("101.79547500005", "377.425079000182", 
    "178.90612499997999", "134.97121299989499", "212.90102200000501", 
    "135.04173099994699", "372.05428700009401", "180.832084000111", 
    "110.320186999976", "213.06744299991999"), `Retorno D-16` = c("107.50475800002501", 
    "372.05428700009401", "178.85069500002999", "135.04173099994699", 
    "213.03338199993601", "135.70496000000301", "367.362724000122", 
    "180.975222999929", "109.29578299995001", "212.923338999972"
    ), `Retorno D-17` = c("106.985060999985", "367.362724000122", 
    "179.95594400004501", "135.70496000000301", "213.06744299991999", 
    "136.44785299990301", "368.22014100011398", "181.376264000079", 
    "108.360308000003", "213.17060699989099"), `Retorno D-260` = c("153.730192000046", 
    "508.261938999873", "192.27559500001399", "144.77631599991599", 
    "220.74250599998001", "145.108116999967", "507.22596800001298", 
    "192.80481399991501", "155.04072299995499", "220.91570900008099"
    ), `Retorno D-261` = c("154.80475099990099", "507.22596800001298", 
    "192.75661400007101", "145.108116999967", "220.79369900003101", 
    "145.07638600003", "505.86107099987601", "192.85623100004199", 
    "155.065389999887", "221.22815499990199")), row.names = c("...2", 
"...3", "...4", "...5", "...6", "...7", "...8", "...9", "...10", 
"...11"), class = "data.frame")

我需要做的是基本上改变列的顺序,最后一列变成第二列,新的最后一列变成第三列,所以我的数据框看起来像:Date (Column1) that没有改变 - Return D-261(第 21 列) - Return D-260(第 20 列) - Return D-17(第 19 列)- 列18 - 第 17 列,依此类推

我该怎么做?

我们可以使用 ncol:

的索引
df1[c(1, ncol(df1):2)]

这是 dplyr 的解决方案 relocate

library(dplyr)
df %>% 
    relocate(1, rev(1:last_col()))
+     relocate(1, rev(1:last_col()))
            Data      Retorno D-261      Retorno D-260       Retorno D-17       Retorno D-16       Retorno D-15       Retorno D-14       Retorno D-13       Retorno D-12       Retorno D-11       Retorno D-10        Retorno D-9        Retorno D-8        Retorno D-7
...2  2021-05-03 154.80475099990099   153.730192000046   106.985060999985 107.50475800002501    101.79547500005 103.04777499998499   100.108439999982 98.902974999975399   99.4912189999595 95.985452000051694 97.756707999971695 96.906087000039406 97.002081000013305
...3  2021-05-03 507.22596800001298   508.261938999873   367.362724000122 372.05428700009401   377.425079000182 375.97806099988497    386.48408799991   383.375612000003 387.22270599985501 384.26056599989499 385.90785099985101    382.70317400014 384.63738099997897
...4  2021-05-03 192.75661400007101 192.27559500001399 179.95594400004501 178.85069500002999 178.90612499997999 178.67337099998301 179.39689900004299 180.28261399990899 179.39680900005601   180.443010000046 180.67245199997001 181.13978999992801   180.892560000066
...5  2021-05-03   145.108116999967 144.77631599991599 135.70496000000301 135.04173099994699 134.97121299989499 134.77858299994799   135.147547000088 135.69338999991299 135.11656800005599 135.62111099995701 135.85074999998301   136.125711000059 135.95332000008801
...6  2021-05-04 220.79369900003101 220.74250599998001 213.06744299991999 213.03338199993601 212.90102200000501 212.42134299990701 212.45787100005001 212.53214300004799    212.40417600004   212.284718000097 212.16175900003901   211.974497999996    211.97024699999
...7  2021-05-04    145.07638600003   145.108116999967 136.44785299990301 135.70496000000301 135.04173099994699 134.97121299989499 134.77858299994799   135.147547000088 135.69338999991299 135.11656800005599 135.62111099995701 135.85074999998301   136.125711000059
...8  2021-05-04 505.86107099987601 507.22596800001298 368.22014100011398   367.362724000122 372.05428700009401   377.425079000182 375.97806099988497    386.48408799991   383.375612000003 387.22270599985501 384.26056599989499 385.90785099985101    382.70317400014
...9  2021-05-06 192.85623100004199 192.80481399991501   181.376264000079   180.975222999929   180.832084000111 179.95594400004501 178.85069500002999 178.90612499997999 178.67337099998301 179.39689900004299 180.28261399990899 179.39680900005601   180.443010000046
...10 2021-05-06   155.065389999887 155.04072299995499   108.360308000003 109.29578299995001   110.320186999976   106.985060999985 107.50475800002501    101.79547500005 103.04777499998499   100.108439999982 98.902974999975399   99.4912189999595 95.985452000051694
...11 2021-05-06 221.22815499990199 220.91570900008099 213.17060699989099   212.923338999972 213.06744299991999 213.03338199993601 212.90102200000501 212.42134299990701 212.45787100005001 212.53214300004799    212.40417600004   212.284718000097 212.16175900003901
             Retorno D-6        Retorno D-5        Retorno D-4        Retorno D-3        Retorno D-2        Retorno D-1          Retorno D
...2  98.068665000028005 99.524296000017799 99.281853999942498 100.33839799999301   100.053130000015 99.984314000001206               <NA>
...3    389.875897000078    384.95722099999 384.43776899995299 370.97650599991903 366.99624599982099   361.888238000218               <NA>
...4  180.77143500000199 180.04651900008301 180.19407399999901 180.13891600002501 178.66752699995399   178.550884000026               <NA>
...5  135.91781000001399 135.49586799996899   135.494221000001   135.426288000075   134.488129999954 134.38776799989901               <NA>
...6    212.127748999977 212.47239700006301 212.53238200000499 212.32330200006299 211.93803400010799 211.68034700001601 211.52430499997001
...7  135.95332000008801 135.91781000001399 135.49586799996899   135.494221000001   135.426288000075   134.488129999954 134.38776799989901
...8  384.63738099997897   389.875897000078    384.95722099999 384.43776899995299 370.97650599991903 366.99624599982099   361.888238000218
...9  180.67245199997001 181.13978999992801   180.892560000066 180.77143500000199 180.04651900008301 180.19407399999901 180.13891600002501
...10 97.756707999971695 96.906087000039406 97.002081000013305 98.068665000028005 99.524296000017799 99.281853999942498 100.33839799999301
...11   211.974497999996    211.97024699999   212.127748999977 212.47239700006301 212.53238200000499 212.32330200006299 211.93803400010799