重新排列数据框中的行

时间:2019-04-12 07:58:01

标签: r

我在R中有一个数据框,看起来像这样,有两列:

ID     phone_number
Mark     866458
Paul     986564
Jack     987543
Mary     523422

我想在只有一列的情况下获得这种输出

Mark
866458
Paul
986564
Jack
987543
Mary
523422

有人知道我可以使用哪个R代码来获取输出?


可重复性数据

structure(list(ID = c("Mark", "Paul", "Jack", "Mary"), phone_number = c(866458, 
                                                                        986564, 987543, 523422)), row.names = c(NA, -4L), class = c("tbl_df", "data.frame"))

4 个答案:

答案 0 :(得分:7)

我们可以转置数据框,然后创建一个值向量

data.frame(new_col = c(t(df)))

#  new_col
#1    Mark
#2  866458
#3    Paul
#4  986564
#5    Jack
#6  987543
#7    Mary
#8  523422

使用mapply

的另一个基本R选项
data.frame(new_col = c(mapply(c, df$ID, df$phone_number)))

答案 1 :(得分:2)

我们也可以

library(tidyverse)
pmap(df1, c) %>% 
       unlist %>% 
       tibble(new_col = .)

答案 2 :(得分:1)

/generated/source/apollo/generatedIR/main/的一种可能性:

tidyverse

答案 3 :(得分:1)

具有中间df的较长方法,但根据您的完整数据集可能有一些价值:

library(tidyverse)

df1 <- df %>% 
  rowid_to_column() %>%
  select(rowid, ID = phone_number) 

df2 <- df %>% 
  rowid_to_column() %>%
  select(rowid, ID) %>%
  rbind(df1) %>% 
  arrange(rowid) %>% 
  select(ID)

结果:

  ID    
  <chr> 
1 Mark  
2 866458
3 Paul  
4 986564
5 Jack  
6 987543
7 Mary  
8 523422