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

用户名

我有一个大型数据集,需要将其从宽格式转换为长格式。这应该足够简单,并且在此论坛上有很多有关如何执行此操作的示例。但是,在这种情况下,我还需要拆分宽格式使用的列标题,并为每个长格式创建一个列。

示例数据集

 data <- data.frame("East2010"=1:3, "West2010"=4:6, "East2011"=7:9, "West2011"=5:7)
 data
 East.2010 West.2010 East.2011 West.2011
 1         1         4         7         5
 2         2         5         8         6
 3         3         6         9         7

我想要的是这样的

 Site   Year   Response
 East   2010   1
 East   2010   2
 East   2010   3
 West   2010   4
 West   2010   5
 West   2010   6
 East   2011   7
 East   2011   8
 East   2011   9
 West   2011   5
 West   2011   6
 West   2011   7

我在这个论坛上看了很多示例,这些示例将融合数据以将其转换为长格式,而其他示例则在定界符处进行列拆分,但是我无法使两者一起工作。

A5C1D2H2I1M1N2O1R2T1

这是“现代” :-)方法:

library(dplyr)
library(tidyr)
data %>%
  gather(var, Response, East2010:West2011) %>%  ## Makes wide data long
  separate(var, c("Site", "Year"), sep = -5)    ## Splits up a column
#    Site Year Response
# 1  East 2010        1
# 2  East 2010        2
# 3  East 2010        3
# 4  West 2010        4
# 5  West 2010        5
# 6  West 2010        6
# 7  East 2011        7
# 8  East 2011        8
# 9  East 2011        9
# 10 West 2011        5
# 11 West 2011        6
# 12 West 2011        7

sep = -5上方from表示从字符串末尾开始向后五个字符并在此处拆分。因此,如果您将“ North2010”作为可能的名称,则此名称仍然有效。

也就是说,使用@David之类的正则表达式更为可靠,这也可以在以下代码中使用separate

data %>%
  gather(var, Response, East2010:West2011) %>%
  separate(var, c("Site", "Year"), 
           sep = "(?<=[[:alpha:]])(?=[[:digit:]])", 
           perl = TRUE)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R通过拆分列名将df从宽转换为长

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

列名称转换为r中的矩阵格式

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类常见问题

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将长格式数据转换为R中的三维数组

来自分类Dev

R以这种格式拆分列

来自分类Dev

拆分列并将Spark中的空值转换为null

来自分类Dev

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

来自分类Dev

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

来自分类Dev

进行以下从宽到长格式的数据帧转换的好方法?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

匹配名称并将数据设置为r中的宽格式

来自分类Dev

R中的数据帧从宽格式重组为两列

来自分类Dev

r将具有模式的列名的数据集从宽到长转换

Related 相关文章

  1. 1

    R通过拆分列名将df从宽转换为长

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

    列名称转换为r中的矩阵格式

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

    将长格式数据转换为R中的三维数组

  19. 19

    R以这种格式拆分列

  20. 20

    拆分列并将Spark中的空值转换为null

  21. 21

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

  22. 22

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

  23. 23

    进行以下从宽到长格式的数据帧转换的好方法?

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

    匹配名称并将数据设置为r中的宽格式

  28. 28

    R中的数据帧从宽格式重组为两列

  29. 29

    r将具有模式的列名的数据集从宽到长转换

热门标签

归档