根据时间戳对数据帧的行进行排序

等待一个

我有一个数据框,我想根据时间戳对其中的行进行排序。

                     V1    V2                     V3    V4                     V5    V6
1 {"2014-08-01T01:00:00": "64", "2014-08-01T13:00:00": "53", "2014-08-01T01:20:00": "73",
2 {"2014-08-02T18:00:00": "37", "2014-08-02T22:00:00": "56", "2014-08-02T17:00:00": "24",
3 {"2014-08-03T17:50:00": "78", "2014-08-03T04:20:00": "83", "2014-08-03T00:20:00": "73",
4 {"2014-08-04T15:00:00": "37", "2014-08-04T21:00:00": "39", "2014-08-04T15:20:00": "43",
5 {"2014-08-05T19:20:00": "78", "2014-08-05T13:20:00": "46", "2014-08-05T00:00:00": "62",
6 {"2014-08-06T11:00:00": "45", "2014-08-06T09:00:00": "56", "2014-08-06T21:50:00": "68",
                      V7    V8                     V9   V10                    V11   V12
1 "2014-08-01T13:20:00": "57", "2014-08-01T13:50:00": "47", "2014-08-01T20:50:00": "44",
2 "2014-08-02T01:00:00": "56", "2014-08-02T17:20:00": "42", "2014-08-02T01:20:00": "68",
3 "2014-08-03T23:00:00": "81", "2014-08-03T00:00:00": "63", "2014-08-03T00:50:00": "73",
4 "2014-08-04T02:00:00": "81", "2014-08-04T18:00:00": "29", "2014-08-04T02:20:00": "88",
5 "2014-08-05T00:20:00": "72", "2014-08-05T00:50:00": "77", "2014-08-05T19:00:00": "75",
6 "2014-08-06T14:20:00": "53", "2014-08-06T14:00:00": "40", "2014-08-06T23:20:00": "77",

想要的

仅一行的输出如下所示。

{"2014-08-01T01:00:00": "64",   "2014-08-01T01:20:00":  "73",   "2014-08-01T13:00:00":  "53",   "2014-08-01T13:20:00":  "57",   "2014-08-01T13:50:00":  "47",   "2014-08-01T20:50:00":  "44",
阿克伦

我们转换datetime列(df2[c(TRUE, FALSE)]到-我们进行子集通过循环逻辑矢量)POSIXct类通过柱与循环lapply,再order利用行applyMARGIN=1(“M1”)。我们split按时间列和值列逐行创建两个列表“ l1”,“ l2”,然后在基于“ m1”对元素进行排序后使用Mapwithpaste将字符串连接在一起。可以将其转换为data.frame一列。

 df2[c(TRUE, FALSE)] <- lapply(df1[c(TRUE, FALSE)], function(x) as.POSIXct(sub('[{]', '', x), format = '%Y-%m-%dT%H:%M:%S:'))
 m1 <- apply(df2[c(TRUE, FALSE)], 1, order)
 l1 <- split(as.matrix(df1[c(TRUE, FALSE)]), row(df1[c(TRUE, FALSE)]))
 l2 <- split(as.matrix(df2[c(FALSE, TRUE)]), row(df2[c( FALSE, TRUE)]))


data.frame(col1=unlist(Map(function(x,y,z) paste0('{', 
               paste(gsub('^\\{*(\\d+.*)(\\:)', '"\\1"\\2', x[z]),
                     gsub('(\\d+)', '"\\1"', y[z]), sep=' ', collapse=' ')),
                 l1, l2, split(m1, col(m1)))), stringsAsFactors=FALSE)
                                                                                                                                                                            col1
#1 {"2014-08-01T01:00:00": "64", "2014-08-01T01:20:00": "73", "2014-08-01T13:00:00": "53", "2014-08-01T13:20:00": "57", "2014-08-01T13:50:00": "47", "2014-08-01T20:50:00": "44",
#2 {"2014-08-02T01:00:00": "56", "2014-08-02T01:20:00": "68", "2014-08-02T17:00:00": "24", "2014-08-02T17:20:00": "42", "2014-08-02T18:00:00": "37", "2014-08-02T22:00:00": "56",
#3 {"2014-08-03T00:00:00": "63", "2014-08-03T00:20:00": "73", "2014-08-03T00:50:00": "73", "2014-08-03T04:20:00": "83", "2014-08-03T17:50:00": "78", "2014-08-03T23:00:00": "81",
#4 {"2014-08-04T02:00:00": "81", "2014-08-04T02:20:00": "88", "2014-08-04T15:00:00": "37", "2014-08-04T15:20:00": "43", "2014-08-04T18:00:00": "29", "2014-08-04T21:00:00": "39",
#5 {"2014-08-05T00:00:00": "62", "2014-08-05T00:20:00": "72", "2014-08-05T00:50:00": "77", "2014-08-05T13:20:00": "46", "2014-08-05T19:00:00": "75", "2014-08-05T19:20:00": "78",
#6 {"2014-08-06T09:00:00": "56", "2014-08-06T11:00:00": "45", "2014-08-06T14:00:00": "40", "2014-08-06T14:20:00": "53", "2014-08-06T21:50:00": "68", "2014-08-06T23:20:00": "77",

数据

lines <- readLines(textConnection('V1    V2                     V3    V4                     V5    V6
1 {"2014-08-01T01:00:00": "64", "2014-08-01T13:00:00": "53", "2014-08-01T01:20:00": "73",
2 {"2014-08-02T18:00:00": "37", "2014-08-02T22:00:00": "56", "2014-08-02T17:00:00": "24",
3 {"2014-08-03T17:50:00": "78", "2014-08-03T04:20:00": "83", "2014-08-03T00:20:00": "73",
4 {"2014-08-04T15:00:00": "37", "2014-08-04T21:00:00": "39", "2014-08-04T15:20:00": "43",
5 {"2014-08-05T19:20:00": "78", "2014-08-05T13:20:00": "46", "2014-08-05T00:00:00": "62",
6 {"2014-08-06T11:00:00": "45", "2014-08-06T09:00:00": "56", "2014-08-06T21:50:00": "68",'))

lines2 <- readLines(textConnection('V7    V8                     V9   V10                    V11   V12
1 "2014-08-01T13:20:00": "57", "2014-08-01T13:50:00": "47", "2014-08-01T20:50:00": "44",
2 "2014-08-02T01:00:00": "56", "2014-08-02T17:20:00": "42", "2014-08-02T01:20:00": "68",
3 "2014-08-03T23:00:00": "81", "2014-08-03T00:00:00": "63", "2014-08-03T00:50:00": "73",
4 "2014-08-04T02:00:00": "81", "2014-08-04T18:00:00": "29", "2014-08-04T02:20:00": "88",
5 "2014-08-05T00:20:00": "72", "2014-08-05T00:50:00": "77", "2014-08-05T19:00:00": "75",
6 "2014-08-06T14:20:00": "53", "2014-08-06T14:00:00": "40", "2014-08-06T23:20:00": "77",'))

 d1 <- read.table(text=gsub('^\\d+\\s+|"', '', lines), header=TRUE, stringsAsFactors=FALSE)
 d2 <- read.table(text=gsub('^\\d+\\s+|"', '', lines2), header=TRUE, stringsAsFactors=FALSE)
 df1 <- cbind(d1, d2)
 df2 <- df1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据连续行之间的时间差对数据帧中的行进行分组

来自分类Dev

根据条件对数据帧行进行分组和平均

来自分类Dev

根据时间顺序对数据进行排序?

来自分类Dev

在R中:根据另一个表中的数据对数据帧的行进行重新排序

来自分类Dev

在R中:根据另一个表中的数据对数据帧中的行进行重新排序

来自分类Dev

根据包含时间戳的对象值对数组进行排序

来自分类Dev

根据包含时间戳的对象值对数组进行排序

来自分类Dev

根据向量对数据帧行进行排序,优先级顺序包含表中未找到的值

来自分类Dev

根据向量对数据帧行进行排序,优先级顺序包含表中未找到的值

来自分类Dev

应用自然排序,根据列对数据帧进行排序

来自分类Dev

连接多个数据帧并对数据帧中的行进行排序

来自分类Dev

R:根据向量的顺序对数据帧进行排序?

来自分类Dev

在 R 中,如何根据向量中的值对数据帧的行进行子集

来自分类Dev

根据时间变量列对分组的数据帧进行排序

来自分类Dev

根据特定列中的值对数据框行进行排序

来自分类Dev

如何根据列中的值对数据框的行进行重新排序

来自分类Dev

如何通过Shiny R脚本的格式为“%d /%m /%Y%H:%M:%S”的时间戳列对数据帧进行排序

来自分类Dev

如何根据R中原始数据的索引对数据帧的列进行排序?

来自分类Dev

对数据表中的行进行排序

来自分类Dev

按列对数据框中的某些行进行排序

来自分类Dev

R:对数据框中的行进行重新排序

来自分类Dev

如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

来自分类Dev

根据日期列对数据框中的行进行分组

来自分类Dev

根据用户在运行时和时间间隔输入的字段对数据帧进行分组

来自分类Dev

根据数据帧中的权重或概率对行进行采样

来自分类Dev

根据数据帧中的权重或概率对行进行采样

来自分类Dev

通过时间戳对数据进行子集和绘图

来自分类Dev

根据数据框中的变量组对行进行排序

来自分类Dev

如何按列值对数据帧进行排序?

Related 相关文章

  1. 1

    根据连续行之间的时间差对数据帧中的行进行分组

  2. 2

    根据条件对数据帧行进行分组和平均

  3. 3

    根据时间顺序对数据进行排序?

  4. 4

    在R中:根据另一个表中的数据对数据帧的行进行重新排序

  5. 5

    在R中:根据另一个表中的数据对数据帧中的行进行重新排序

  6. 6

    根据包含时间戳的对象值对数组进行排序

  7. 7

    根据包含时间戳的对象值对数组进行排序

  8. 8

    根据向量对数据帧行进行排序,优先级顺序包含表中未找到的值

  9. 9

    根据向量对数据帧行进行排序,优先级顺序包含表中未找到的值

  10. 10

    应用自然排序,根据列对数据帧进行排序

  11. 11

    连接多个数据帧并对数据帧中的行进行排序

  12. 12

    R:根据向量的顺序对数据帧进行排序?

  13. 13

    在 R 中,如何根据向量中的值对数据帧的行进行子集

  14. 14

    根据时间变量列对分组的数据帧进行排序

  15. 15

    根据特定列中的值对数据框行进行排序

  16. 16

    如何根据列中的值对数据框的行进行重新排序

  17. 17

    如何通过Shiny R脚本的格式为“%d /%m /%Y%H:%M:%S”的时间戳列对数据帧进行排序

  18. 18

    如何根据R中原始数据的索引对数据帧的列进行排序?

  19. 19

    对数据表中的行进行排序

  20. 20

    按列对数据框中的某些行进行排序

  21. 21

    R:对数据框中的行进行重新排序

  22. 22

    如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

  23. 23

    根据日期列对数据框中的行进行分组

  24. 24

    根据用户在运行时和时间间隔输入的字段对数据帧进行分组

  25. 25

    根据数据帧中的权重或概率对行进行采样

  26. 26

    根据数据帧中的权重或概率对行进行采样

  27. 27

    通过时间戳对数据进行子集和绘图

  28. 28

    根据数据框中的变量组对行进行排序

  29. 29

    如何按列值对数据帧进行排序?

热门标签

归档