如何在R中将多列转换为单独的行

玛丽莎

我在R中有一个数据帧,其中有很多行(超过3000行),其中有话语的F0(基本频率)轨道。这些行中包含以下信息:说话者ID,组号,重复号,重音类型,性别,然后是50列F0点。数据如下所示:

Speaker Sex Group Repetition Accent    Word         1         2         3        4
    105   M     1          1      N AILMENT 102.31030 102.31030 102.31030 102.31127 
    105   M     1          1      N COLLEGE 111.80641 111.80313 111.68612 111.36020
    105   M     1          1      N  FATHER 124.06655 124.06655 124.06655 124.06655 

但是,它不仅要转到X4,而且每行有50个点,所以我有3562x56的数据帧。我想对其进行更改,以便F0轨道中的每一列数据(因此字后从1:50开始)都具有自己的列,并将关联的列号作为另一行。我想将所有信息也与每个数据点一起保存在前六列中,因此看起来像这样:

Speaker Sex Group Repetition Accent    Word       Num        F0
    105   M     1          1      N AILMENT         1 102.31030
    105   M     1          1      N AILMENT         2 102.31030
    105   M     1          1      N AILMENT         3 102.31030
    105   M     1          1      N AILMENT         4 102.31127
    ...
    105   M     1          1      N COLLEGE         1 111.80641 
    105   M     1          1      N COLLEGE         1 111.80313 
    105   M     1          1      N COLLEGE         1 111.68612 
    105   M     1          1      N COLLEGE         1 111.36020 
    ...

我尝试使用的代码虽然很乏味,但如下所示:

x = 1
for (i in 1:dim(normrangef0)[1]) {
     for (j in 1:50) {
             norm.all$Speaker[x] <- normrangef0$Speaker[i]
             norm.all$Sex[x] <- normrangef0$Sex[i]
             norm.all$Group[x] <- normrangef0$Group[i]
             norm.all$Repetition[x] <- normrangef0$Repetition[i]
             norm.all$Word[x] <- normrangef0$Word[i]
             norm.all$Accent[x] <- normrangef0$Accent[i]
             norm.all$Time[x] <- j
             norm.all$F0[x] <- normrangef0[i,j+6]
             x = x+1    
    }
}

但是,当我使用norm.all作为NULL对象(仅由norm.all = c()定义)执行此操作时,最终得到超过200k项的列表,其中许多都是NA。当我将norm.all定义为数据帧(在178100x8数据帧中为空1或全0之一时,出现错误:

错误$<-.data.frame*tmp*“扬声器”,值= 105L):替换已1行,数据具有0

我的代码完全关闭了吗?还有另一种方法吗?

A5C1D2H2I1M1N2O1R2T1

使用melt从“reshape2”

library(reshape2)
melt(mydf, id.vars=c("Speaker", "Sex", "Group", "Repetition", "Accent", "Word"))
#    Speaker Sex Group Repetition Accent    Word variable    value
# 1      105   M     1          1      N AILMENT        1 102.3103
# 2      105   M     1          1      N COLLEGE        1 111.8064
# 3      105   M     1          1      N  FATHER        1 124.0666
# 4      105   M     1          1      N AILMENT        2 102.3103
# 5      105   M     1          1      N COLLEGE        2 111.8031
# 6      105   M     1          1      N  FATHER        2 124.0666
# 7      105   M     1          1      N AILMENT        3 102.3103
# 8      105   M     1          1      N COLLEGE        3 111.6861
# 9      105   M     1          1      N  FATHER        3 124.0666
# 10     105   M     1          1      N AILMENT        4 102.3113
# 11     105   M     1          1      N COLLEGE        4 111.3602
# 12     105   M     1          1      N  FATHER        4 124.0666

在基数R中,您还可以stack用于堆叠名为1到4的列以及cbind第一组列。或者,unlist也可以这样做。


您可能还需要查看“ data.table”包,以提高速度。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在熊猫中将多列转换为单独的行/值?

来自分类Dev

如何在R中将特定行转换为列

来自分类Dev

如何在awk中将多列转换为连续的lign

来自分类Dev

如何在R中将数据帧转换为具有多列的json

来自分类Dev

如何在Oracle中将行转换为列?

来自分类Dev

如何在Pandas Dataframe中将行转换为列

来自分类Dev

如何在SQL Server中将行转换为列?

来自分类Dev

如何在python熊猫中将数据从行转换为列?

来自分类Dev

如何在Python中将DataFrame列转换为行?

来自分类Dev

如何在Oracle中将行转换为列?

来自分类Dev

如何在php mysql中将列数据转换为行

来自分类Dev

如何在 spark/scala 中将行转换为列?

来自分类Dev

如何在Python中将行转换为列

来自分类Dev

如何在R中的数据框中将每个唯一值的列值转换为行?

来自分类Dev

如何在Sql Server 2008 R2中将列转换为行?

来自分类Dev

在R中将数据从行转换为列

来自分类Dev

在R中将数据从行转换为列

来自分类Dev

如何在 PL/SQL 中将 CSV 字符串转换为多列结果?

来自分类Dev

在 SQL Server 中将行转换为多列

来自分类Dev

如何在SQL中将列旋转到行,还将列标题转换为行值?

来自分类Dev

如何在python中将元组转换为多嵌套字典?

来自分类Dev

在R中将多列从字符转换为数字格式

来自分类Dev

如何在Pentaho Kettle中将表从行转换为没有标题列的列

来自分类Dev

如何在Oracle SQL中将行转换为按多个列分组的列组

来自分类Dev

如何在mysql中将列转换为行(具有相同值的列)

来自分类Dev

如何在Python中将列或行矩阵转换为对角矩阵?

来自分类Dev

如何在python中将二维数组的列转换为行?

来自分类Dev

如何在记事本++中将列转换为行

来自分类Dev

如何在python数据框中将许多列转换为行?

Related 相关文章

  1. 1

    如何在熊猫中将多列转换为单独的行/值?

  2. 2

    如何在R中将特定行转换为列

  3. 3

    如何在awk中将多列转换为连续的lign

  4. 4

    如何在R中将数据帧转换为具有多列的json

  5. 5

    如何在Oracle中将行转换为列?

  6. 6

    如何在Pandas Dataframe中将行转换为列

  7. 7

    如何在SQL Server中将行转换为列?

  8. 8

    如何在python熊猫中将数据从行转换为列?

  9. 9

    如何在Python中将DataFrame列转换为行?

  10. 10

    如何在Oracle中将行转换为列?

  11. 11

    如何在php mysql中将列数据转换为行

  12. 12

    如何在 spark/scala 中将行转换为列?

  13. 13

    如何在Python中将行转换为列

  14. 14

    如何在R中的数据框中将每个唯一值的列值转换为行?

  15. 15

    如何在Sql Server 2008 R2中将列转换为行?

  16. 16

    在R中将数据从行转换为列

  17. 17

    在R中将数据从行转换为列

  18. 18

    如何在 PL/SQL 中将 CSV 字符串转换为多列结果?

  19. 19

    在 SQL Server 中将行转换为多列

  20. 20

    如何在SQL中将列旋转到行,还将列标题转换为行值?

  21. 21

    如何在python中将元组转换为多嵌套字典?

  22. 22

    在R中将多列从字符转换为数字格式

  23. 23

    如何在Pentaho Kettle中将表从行转换为没有标题列的列

  24. 24

    如何在Oracle SQL中将行转换为按多个列分组的列组

  25. 25

    如何在mysql中将列转换为行(具有相同值的列)

  26. 26

    如何在Python中将列或行矩阵转换为对角矩阵?

  27. 27

    如何在python中将二维数组的列转换为行?

  28. 28

    如何在记事本++中将列转换为行

  29. 29

    如何在python数据框中将许多列转换为行?

热门标签

归档