使用melt()将宽数据转换为需要值查找的长数据格式

DT

我很难弄清楚如何将一些宽数据转换为长格式。我有三列字符串数据(A1_R00_FillerNPA1_R01_ADVA1_R02_1stEmbV),我希望将它们融合为一列(WordCountRegion),这样对于每个Subject和item,正确的单词将从这三列之一映射到新的WordCountRegioncolumn列。 。

使用melt下面的代码中的简单方法可以使我了解其中的一部分:

(注意:中的奇怪字符df无关紧要-请在此处忽略它们)

df <- structure(list(Subject = c(101L, 101L, 101L, 101L, 101L, 101L, 
101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 
101L), condition = structure(c(2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 
3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L), .Label = c("P", "R", 
"S"), class = "factor"), item = c(101L, 102L, 103L, 101L, 102L, 
103L, 101L, 102L, 103L, 101L, 102L, 103L, 101L, 102L, 103L, 101L, 
102L, 103L), A1_R00_FillerNP = structure(c(3L, 2L, 1L, 3L, 2L, 
1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L), .Label = c("SÌÇna d_r allvarliga konsekvenser", 
"SÌÇna d_r fina _ppeltr_d", "SÌÇna d_r gamla skottk_rror"
), class = "factor"), A1_R01_ADV = structure(c(1L, 1L, 2L, 1L, 
1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L), .Label = c("alltid", 
"f_rresten"), class = "factor"), A1_R02_1stEmbV = structure(c(3L, 
2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 
1L), .Label = c("diskuterade", "stod", "tv_ttade"), class = "factor"), 
    RT = c(0L, 149L, 247L, 272L, 171L, 245L, 317L, 0L, 233L, 
    0L, 981L, 750L, 272L, 171L, 334L, 317L, 0L, 233L), Region = structure(c(1L, 
    1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 
    3L, 3L), .Label = c("R00", "R01", "R02"), class = "factor"), 
    RegionType = structure(c(3L, 3L, 3L, 2L, 2L, 2L, 1L, 1L, 
    1L, 3L, 3L, 3L, 2L, 2L, 2L, 1L, 1L, 1L), .Label = c("1stEmbV", 
    "ADV", "FillerNP"), class = "factor"), DV = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L), .Label = c("FIRST_FIXATION_DURATION", "GAZE_DURATION"
    ), class = "factor")), .Names = c("Subject", "condition", 
"item", "A1_R00_FillerNP", "A1_R01_ADV", "A1_R02_1stEmbV", "RT", 
"Region", "RegionType", "DV"), class = "data.frame", row.names = c(NA, 
-18L))

df1 = melt(df, measure.vars = c("A1_R00_FillerNP","A1_R01_ADV","A1_R02_1stEmbV"), var = "WordCountRegion")

问题在于此代码错误地在区域之间打断了单词。我最终得到如下所示的输出,其中单词不会像指定的那样折断Region,而是延伸到的值Region,如WordCountRegion和所示value显然,如果我要使用它,那么我需要某种附加的规范,以便melt()能够正确地破坏数据。我只是不确定如何执行此操作(或者是否可以在melt()中完成此操作)。

   Subject condition item  RT Region RegionType                      DV WordCountRegion                             value
1      101         R  101   0    R00   FillerNP FIRST_FIXATION_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
2      101         P  102 149    R00   FillerNP FIRST_FIXATION_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
3      101         S  103 247    R00   FillerNP FIRST_FIXATION_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser
4      101         R  101 272    R01        ADV FIRST_FIXATION_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
5      101         P  102 171    R01        ADV FIRST_FIXATION_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
6      101         S  103 245    R01        ADV FIRST_FIXATION_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser
7      101         R  101 317    R02    1stEmbV FIRST_FIXATION_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
8      101         P  102   0    R02    1stEmbV FIRST_FIXATION_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
9      101         S  103 233    R02    1stEmbV FIRST_FIXATION_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser
10     101         R  101   0    R00   FillerNP           GAZE_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
11     101         P  102 981    R00   FillerNP           GAZE_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
12     101         S  103 750    R00   FillerNP           GAZE_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser
13     101         R  101 272    R01        ADV           GAZE_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
14     101         P  102 171    R01        ADV           GAZE_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
15     101         S  103 334    R01        ADV           GAZE_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser
16     101         R  101 317    R02    1stEmbV           GAZE_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
17     101         P  102   0    R02    1stEmbV           GAZE_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
18     101         S  103 233    R02    1stEmbV           GAZE_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser
19     101         R  101   0    R00   FillerNP FIRST_FIXATION_DURATION      A1_R01_ADV                            alltid
20     101         P  102 149    R00   FillerNP FIRST_FIXATION_DURATION      A1_R01_ADV                            alltid
21     101         S  103 247    R00   FillerNP FIRST_FIXATION_DURATION      A1_R01_ADV                         f_rresten

有没有一种我可以修改的方法,melt()使它们按排列/匹配Region,如下面的示例所示:

   Subject condition item  RT Region RegionType                      DV WordCountRegion                             value
1      101         R  101   0    R00   FillerNP FIRST_FIXATION_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
2      101         P  102 149    R00   FillerNP FIRST_FIXATION_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
3      101         S  103 247    R00   FillerNP FIRST_FIXATION_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser
4      101         R  101 272    R01        ADV FIRST_FIXATION_DURATION A1_R01_ADV                                 alltid
5      101         P  102 171    R01        ADV FIRST_FIXATION_DURATION A1_R01_ADV                                 alltid
6      101         S  103 245    R01        ADV FIRST_FIXATION_DURATION A1_R01_ADV                              f_rresten
7      101         R  101 317    R02    1stEmbV FIRST_FIXATION_DURATION A1_R02_1stEmbV                           tv_ttade
8      101         P  102   0    R02    1stEmbV FIRST_FIXATION_DURATION A1_R02_1stEmbV                               stod
9      101         S  103 233    R02    1stEmbV FIRST_FIXATION_DURATION A1_R02_1stEmbV                        diskuterade
10     101         R  101   0    R00   FillerNP           GAZE_DURATION A1_R00_FillerNP       SÌÇna d_r gamla skottk_rror
11     101         P  102 981    R00   FillerNP           GAZE_DURATION A1_R00_FillerNP          SÌÇna d_r fina _ppeltr_d
12     101         S  103 750    R00   FillerNP           GAZE_DURATION A1_R00_FillerNP SÌÇna d_r allvarliga konsekvenser

或者,如果我完全使用了错误的功能,请问有人可以为我提供更好的解决方案吗?也许我需要进行实际查找的内容?

埃姆维

您可以创建一个小的查询表,将其合并,然后用它过滤融化的数据框,我相信这会为您提供所需的结果。

region_df <- data.frame(var = c("A1_R00_FillerNP","A1_R01_ADV","A1_R02_1stEmbV"), 
  Region = c('R00','R01','R02'))

df2 <- merge(df1, region_df)
df3 <- subset(df2, var==WordCountRegion)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用melt()将宽数据转换为需要值查找的长数据格式

来自分类Dev

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

来自分类Dev

将分类数据从长格式转换为宽格式

来自分类常见问题

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将长格式数据帧转换为宽格式但保留 R 中的列数

来自分类Dev

R 将长数据格式化为宽数据...但具有链接结果

来自分类Dev

将长格式转换为宽格式

来自分类Dev

将长格式转换为宽格式

来自分类Dev

将宽数据帧转换为长数据帧

来自分类Dev

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

来自分类Dev

将具有互不排斥类别的长数据转换为宽格式

来自分类Dev

我将宽数据帧转换为长格式的 R 代码有什么问题?

来自分类Dev

使用pivot_longer将长格式数据集转换为长格式数据集

来自分类Dev

将长格式转换为宽

来自分类Dev

当每组有多个值时,将 Pandas 数据框列从长转换为宽

来自分类Dev

将大型的宽格式数据(1982列)融为长格式,然后有效地将其转换为R中的宽格式

来自分类Dev

如何转换为SVM数据格式

来自分类Dev

将数据集从“宽”格式转换为“长”格式,并将时间列转换为时间格式以进行时间序列分析

来自分类Dev

长数据格式的时差

来自分类Dev

如何将DataFrame从长格式转换为宽格式,按计数汇总列的值

来自分类Dev

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

来自分类Dev

R:使用reshape2将数据帧重塑为长数据格式

来自分类Dev

如何使用小时值和日期时间索引将宽格式转换为长格式?

来自分类Dev

使用R中的两个因素将长格式转换为宽格式

来自分类Dev

使用python将宽格式csv转换为长格式csv

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

    使用melt()将宽数据转换为需要值查找的长数据格式

  2. 2

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

  3. 3

    将分类数据从长格式转换为宽格式

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

    将长格式数据帧转换为宽格式但保留 R 中的列数

  8. 8

    R 将长数据格式化为宽数据...但具有链接结果

  9. 9

    将长格式转换为宽格式

  10. 10

    将长格式转换为宽格式

  11. 11

    将宽数据帧转换为长数据帧

  12. 12

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

  13. 13

    将具有互不排斥类别的长数据转换为宽格式

  14. 14

    我将宽数据帧转换为长格式的 R 代码有什么问题?

  15. 15

    使用pivot_longer将长格式数据集转换为长格式数据集

  16. 16

    将长格式转换为宽

  17. 17

    当每组有多个值时,将 Pandas 数据框列从长转换为宽

  18. 18

    将大型的宽格式数据(1982列)融为长格式,然后有效地将其转换为R中的宽格式

  19. 19

    如何转换为SVM数据格式

  20. 20

    将数据集从“宽”格式转换为“长”格式,并将时间列转换为时间格式以进行时间序列分析

  21. 21

    长数据格式的时差

  22. 22

    如何将DataFrame从长格式转换为宽格式,按计数汇总列的值

  23. 23

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

  24. 24

    R:使用reshape2将数据帧重塑为长数据格式

  25. 25

    如何使用小时值和日期时间索引将宽格式转换为长格式?

  26. 26

    使用R中的两个因素将长格式转换为宽格式

  27. 27

    使用python将宽格式csv转换为长格式csv

  28. 28

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

  29. 29

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

热门标签

归档