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
我有这个数据集
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