我的数据如下:
df1<-read.table(text=" A A1 B B1 C C1
12 7 11 4 16 9
12 6 13 8 12 7
14 6 14 2 11 5
13 5 14 3 10 6
11 4 15 6 9 4
10 3 16 7 `8 3
9 2 18 4 `12 12",header=TRUE)
我想得到以下结果。为了节省空间,我没有生成其余部分,因为我认为这没有必要
Group Time Value
M A 12
N A1 7
M B 11
N B1 4
M C 16
N C1 9
M A 12
N A1 6
M B 13
N B1 8
M C 12
N C1 7
M A 14
N A1 6
M B 14
N B1 2
M C 11
N C1 5
. . .
. . .
. . .
. . .
我所做的是:
df2<-gather(df1,Group, Time)
A,B,C被归类为M,而A1,B1和C1被归类为N。有人可以帮忙吗?
如果你想有Group
是N
,如果“1”(其余两端M
),你可以做到以下几点:
library(tidyverse)
df1 %>%
pivot_longer(cols = everything(), names_to = "Time", values_to = "Value") %>%
mutate(Group = if_else(endsWith(Time, "1"), "N", "M"))
建议使用pivot_longer
而不是gather
最新tidyr
的替代产品。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句