使用重塑-Tibble问题从宽到长的转换问题? [英] Problems converting from wide to long using reshape - tibble issue?
本文介绍了使用重塑-Tibble问题从宽到长的转换问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将我的数据从宽转换为长。我有一个id变量和131列时间数据。所有列均为整数格式。数据是以CSV格式导入的。
> class(ECGHR)
[1] "tbl_df" "tbl" "data.frame"
以下是22个时变变量的前6行数据:
> head (ECGHR)
# A tibble: 6 × 132
id T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 T17 T18 T19 T20 T21 T22
<int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
1 2003 70 65 69 71 68 74 67 65 60 66 59 99 74 73 87 94 88 88 98 73 72 63 79
2 2004 98 105 85 87 83 83 77 71 75 73 73 71 87 74 79 75 72 71 71 68 86 72 73
3 2008 93 92 91 90 93 88 89 83 93 96 95 94 89 91 87 93 88 100 93 92 89 93 83
4 2010 71 69 74 71 74 68 74 68 78 75 81 72 74 77 74 70 64 68 65 69 66 73 75
5 2018 90 86 93 91 86 82 97 95 95 83 79 88 78 92 86 94 83 79 96 91 72 78 80
6 2019 60 58 59 58 66 68 73 77 58 110 56 56 53 49 73 56 45 50 46 45 46 54 50
以下是我的重塑代码:
ECGHR_long=reshape(ECGHR, varying=c(2:132), direction="long", idvar="id", sep="")
以下是警告消息:
在‘row.name<;-.data.Frame’(‘tMP’,Value=Paste(d[,idvar], 次[1L],:无效的‘row.name’长度此外:警告消息: 不推荐在Tibble上设置行名。
我习惯于使用数据框,我不明白为什么它不能重塑(我是R的新手)。我需要将其转换为DAT帧吗?如有真知灼见,不胜感激!
推荐答案
若要在R的基数中使用reshape
函数,请尝试此操作--我们省略了idvar="id"
,因为它可以自己计算出该函数,但如果您将其添加进去,它不会有任何影响。
reshape(as.data.frame(ECGHR), dir = "long", varying = list(2:ncol(ECGHR)),
times = names(ECGHR)[-1])
## id time T0
## 2003.T0 2003 T0 70
## 2004.T0 2004 T0 98
## 2008.T0 2008 T0 93
## 2010.T0 2010 T0 71
## 2018.T0 2018 T0 90
## 2019.T0 2019 T0 60
## etc.
或使用reshape2包:
library(reshape2)
melt(ECGHR, id.vars = 1)
## id variable value
## 1 2003 T0 70
## 2 2004 T0 98
## 3 2008 T0 93
## 4 2010 T0 71
## 5 2018 T0 90
## 6 2019 T0 60
注意:我们使用了以下输入:
Lines <- "id T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 T17 T18 T19 T20 T21 T22
1 2003 70 65 69 71 68 74 67 65 60 66 59 99 74 73 87 94 88 88 98 73 72 63 79
2 2004 98 105 85 87 83 83 77 71 75 73 73 71 87 74 79 75 72 71 71 68 86 72 73
3 2008 93 92 91 90 93 88 89 83 93 96 95 94 89 91 87 93 88 100 93 92 89 93 83
4 2010 71 69 74 71 74 68 74 68 78 75 81 72 74 77 74 70 64 68 65 69 66 73 75
5 2018 90 86 93 91 86 82 97 95 95 83 79 88 78 92 86 94 83 79 96 91 72 78 80
6 2019 60 58 59 58 66 68 73 77 58 110 56 56 53 49 73 56 45 50 46 45 46 54 50"
ECGHR <- read.table(text = Lines, header = TRUE)
这篇关于使用重塑-Tibble问题从宽到长的转换问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文