我想执行以下操作,将数据的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
答案 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只有一个选择。
当有大量列时,这不是一个非常优雅的解决方案。