问题描述
我有一个数据框,其中有几行具有相同的ID号,每一列中都有字符值,我想将其拆分为单独的列。
我想从这样的事情出发:
id <- rep(1:5,each = 5)
source <- rep(c("One","Two","Three","Four","Five"),times = 5)
dat_long <- cbind(id,source)
对于这样的事情:
id2 <- rep(1:5)
ess1 <- rep(c("One"),each = 5)
ess2 <- rep(c("Two"),each = 5)
ess3 <- rep(c("Three"),each = 5)
ess4 <- rep(c("Four"),each = 5)
ess5 <- rep(c("Five"),each = 5)
dat_wide <- cbind(id2,ess1,ess2,ess3,ess4,ess5)
我尝试了pivot_wider,重塑,分离但没有找到做我想做的方式的方法。
解决方法
这将使您达到90%的水平。
library(tidyr)
pivot_wider(as.data.frame(dat_long),id_cols = id,names_from = source,values_from = source)
# A tibble: 5 x 6
id One Two Three Four Five
<fct> <fct> <fct> <fct> <fct> <fct>
1 1 One Two Three Four Five
2 2 One Two Three Four Five
3 3 One Two Three Four Five
4 4 One Two Three Four Five
5 5 One Two Three Four Five