Tidyverse R:如何将元组表更改成直接的tibble?

时间:2017-10-05 13:53:21

标签: r tidyverse

我想执行以下操作,将数据的tupple样式行(不带标题)更改为带有标题的表,使用Tidyverse。新命令聚集显然可以处理这个问题。

如何将宽桌子放入直桌或其他现代Tidyverse工具?

library(tidyverse)
INLINE_LOAD ="Car,Merse,Speed,10,Other,ot
Car,Ferra,Speed,20,Other,ot2
Car,Volve,Speed,30,Other,ot3
Car,Miiss,Speed,40,Other,ot4"

通缉输出

Car,Speed,Other
Merse,10,ot
Ferra,20,ot2
Volve,30,ot3
Miiss,40,ot4

2 个答案:

答案 0 :(得分:1)

使用tidyverse:

df %>% select(Car = 2, Speed = 4, Other = 6)

结果:

# A tibble: 4 x 3
     Car Speed  Other
  <fctr> <int> <fctr>
1  Merse    10     ot
2  Ferra    20    ot2
3  Volve    30    ot3
4  Miiss    40    ot4

以基地R:

dfnew <- df[,c(FALSE,TRUE)]
names(dfnew) <- unlist(unique(df[,c(TRUE,FALSE)]))

结果:

> dfnew
    Car Speed Other
1 Merse    10    ot
2 Ferra    20   ot2
3 Volve    30   ot3
4 Miiss    40   ot4

答案 1 :(得分:0)

我们首先使用内联加载,然后应用以下转换

library(tidyverse)
INLINE_LOAD ="Car,Merse,Speed,10,Other,ot
Car,Ferra,Speed,20,Other,ot2
Car,Volve,Speed,30,Other,ot3
Car,Miiss,Speed,40,Other,ot4"

read_delim(INLINE_LOAD, ",", col_names=FALSE) %>% 
    select(c(2,4,6)) %>% 
    select(Car=X2,Speed=X4,Other=X6)

其中重命名列并仅选择奇数列。有一个更优雅的解决方案here只有一个选择。

当有大量列时,这不是一个非常优雅的解决方案。