我有这个数据框,其中第一列给出了时间步长,每一行都给出了值:
1 1.5 1.6 5.4 7.8
2 4.5 4.6 2.4 4.7
3 7.8 7.8 6.8 6.8
我需要这样安排他们
1 1.5
2 4.5
3 7.8
1 1.6
2 4.6
3 7.8
1 5.4
2 2.4
3 6.8
1 7.8
2 4.7
3 6.8
我尝试了gather()
中的简单tidyr
,但没有成功,因为我也需要重新编号。
任何想法...我想这太简单了
答案 0 :(得分:1)
可以
data.frame(new1 = df[,1], new2 = unlist(df[,-1]))
# new1 new2
#V21 1 1.5
#V22 2 4.5
#V23 3 7.8
#V31 1 1.6
#V32 2 4.6
#V33 3 7.8
#V41 1 5.4
#V42 2 2.4
#V43 3 6.8
#V51 1 7.8
#V52 2 4.7
#V53 3 6.8
对于new1
,您正在使用r e c y c l i n g。
答案 1 :(得分:0)
使用dplyr
:
library(dplyr)
tt <- "id v1 v2 v3 v4
1 1.5 1.6 5.4 7.8
2 4.5 4.6 2.4 4.7
3 7.8 7.8 6.8 6.8"
dat <- read.table(text = tt, header = T)
dat %>%
gather("id", "value") %>%
mutate(id = rep(1:3, 4))
# id value
# 1 1 1.5
# 2 2 4.5
# 3 3 7.8
# 4 1 1.6
# 5 2 4.6
# 6 3 7.8
# 7 1 5.4
# 8 2 2.4
# 9 3 6.8
# 10 1 7.8
# 11 2 4.7
# 12 3 6.8