合并R中的几个数据框列

时间:2018-08-31 08:37:29

标签: r tidyr collapse

我有这个数据框,其中第一列给出了时间步长,每一行都给出了值:

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,但没有成功,因为我也需要重新编号。

任何想法...我想这太简单了

2 个答案:

答案 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