合并R中的多个数据框列[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

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

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,但它没有做的技巧因为我还需要进行重新编号。

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

r tidyr collapse
2个回答
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


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
© www.soinside.com 2019 - 2024. All rights reserved.