如何在R中将范围分割成微小的长部分并将其从宽格式转换为长格式?

用户名

我已经看到很多帖子,其中数据格式从宽转换为长。虽然我的问题有点复杂。我有一个这样的数据框:

id  Start_time_of_conversation End_time_of_conversation Participant1 Participant2
id1        07:00                      08:00                     A           B
id2        07:00                      09:00                     C           D

我想将此数据帧转换为这样的东西:

id  time(in min)   dataName        dataValue
id1  07:00        Participant1        A
id1  07:00        Participant2        B
id2  07:00        Participant1        C
id2  07:00        Participant2        D
id1  07:01        Participant1        A
id1  07:01        Participant2        B
id2  07:01        Participant1        C
id2  07:01        Participant2        D
...
id1  08:59        Participant1        A
id1  08:59        Participant2        B
id1  09:00        Participant1        A
id1  09:00        Participant2        B

因此,不仅将其更改为长格式,而且还在时间范围Start_time_of_conversation和End_time_of_conversation之间的每一分钟生成一个新行(由2位参与者组成的两行)。

我当时在想,也许我应该使用seq()和melt()来做到这一点,尽管我确实没有看到,如果没有很多拼凑,我怎么能做到这一点。我应该首先创建一个长格式,然后将每个范围/行转换为分钟序列,还是有一种更简单的方法?

阿克伦

一种选择是使用data.table将'data.frame'转换为'data.table'(setDT(df1),按'id','Participant1'和'Participant2'分组,我们得到'Datetime'列的序列(用转换为POSIXlt之后strptime)。

library(data.table)
DT <- setDT(df1)[, 
  list(time_in_mins =format(seq(strptime(Start_time_of_conversation,
    format="%H:%M"), 
   strptime(End_time_of_conversation, format="%H:%M"), by = "1 min"),
      "%H:%M")) , .(id,Participant1, Participant2)]

使用上面的输出,我们melt可以将“参与者”列转换为“长”格式,并order在必要时进行转换。

melt(DT, id.var=c("id", "time_in_mins"), 
   variable.name= "dataName", 
   value.name= "dataValue")[order(time_in_mins, id, dataName)]
#      id time_in_mins     dataName dataValue
#  1: id1        07:00 Participant1         A
#  2: id1        07:00 Participant2         B
#  3: id2        07:00 Participant1         C
#  4: id2        07:00 Participant2         D
#  5: id1        07:01 Participant1         A
# ---                                        
#360: id2        08:58 Participant2         D
#361: id2        08:59 Participant1         C
#362: id2        08:59 Participant2         D
#363: id2        09:00 Participant1         C
#364: id2        09:00 Participant2         D

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中将数据集从宽格式转换为长格式

来自分类Dev

如何在Python中将csv文件从宽格式转换为长格式

来自分类Dev

在SQL中将数据从宽格式转换为长格式

来自分类Dev

在R中拆分列名称并将数据从宽格式转换为长格式

来自分类Dev

在r中将具有时间变量的纵向数据从宽格式转换为长格式

来自分类Dev

如何在R中将具有大量行的大文件从长格式转换为宽格式?

来自分类Dev

在R中将数据帧从“宽”格式转换为“长”格式

来自分类Dev

如何在熊猫中将长数据格式转换为宽数据格式

来自分类Dev

R如何从长格式转换为宽格式

来自分类Dev

如何使用Python将CSV数据从宽格式转换为长数据集

来自分类Dev

如何在Pandas中将宽日期数据转换为长格式

来自分类Dev

在SQL中将表格从长格式转换为宽格式

来自分类Dev

如何将R数据帧转换为长格式

来自分类Dev

当ID变量在列标题中编码时,将数据从宽格式转换为长格式

来自分类Dev

R:覆盖从宽格式到长格式的数据帧

来自分类Dev

无法在R中从长格式准确转换为宽格式

来自分类Dev

将长格式转换为宽格式

来自分类Dev

将长格式转换为宽格式

来自分类Dev

如何在SQL中使用数字值将长格式转换为宽格式

来自分类Dev

在R中将矩阵最快转换为长格式数据帧

来自分类Dev

在R中将带有计数的宽数据帧转换为长格式

来自分类Dev

将矩阵转换为长格式(R)的数据帧

来自分类Dev

将日期转换为长格式,它如何工作?

来自分类Dev

将日期转换为长格式,它是如何工作的?

来自分类Dev

如何将此数据帧转换为长格式

来自分类Dev

从宽到长格式/结构重塑

来自分类Dev

从宽表格式变为长表(动态)

来自分类Dev

从宽到长格式/结构重塑

来自分类Dev

将长格式转换为宽

Related 相关文章

  1. 1

    如何在R中将数据集从宽格式转换为长格式

  2. 2

    如何在Python中将csv文件从宽格式转换为长格式

  3. 3

    在SQL中将数据从宽格式转换为长格式

  4. 4

    在R中拆分列名称并将数据从宽格式转换为长格式

  5. 5

    在r中将具有时间变量的纵向数据从宽格式转换为长格式

  6. 6

    如何在R中将具有大量行的大文件从长格式转换为宽格式?

  7. 7

    在R中将数据帧从“宽”格式转换为“长”格式

  8. 8

    如何在熊猫中将长数据格式转换为宽数据格式

  9. 9

    R如何从长格式转换为宽格式

  10. 10

    如何使用Python将CSV数据从宽格式转换为长数据集

  11. 11

    如何在Pandas中将宽日期数据转换为长格式

  12. 12

    在SQL中将表格从长格式转换为宽格式

  13. 13

    如何将R数据帧转换为长格式

  14. 14

    当ID变量在列标题中编码时,将数据从宽格式转换为长格式

  15. 15

    R:覆盖从宽格式到长格式的数据帧

  16. 16

    无法在R中从长格式准确转换为宽格式

  17. 17

    将长格式转换为宽格式

  18. 18

    将长格式转换为宽格式

  19. 19

    如何在SQL中使用数字值将长格式转换为宽格式

  20. 20

    在R中将矩阵最快转换为长格式数据帧

  21. 21

    在R中将带有计数的宽数据帧转换为长格式

  22. 22

    将矩阵转换为长格式(R)的数据帧

  23. 23

    将日期转换为长格式,它如何工作?

  24. 24

    将日期转换为长格式,它是如何工作的?

  25. 25

    如何将此数据帧转换为长格式

  26. 26

    从宽到长格式/结构重塑

  27. 27

    从宽表格式变为长表(动态)

  28. 28

    从宽到长格式/结构重塑

  29. 29

    将长格式转换为宽

热门标签

归档