在R中转换数据

马丁

我有以下数据框。

       employee task
t1        e4     t1
t2        e3     t2
t3        e5     t3
t4        e6     t4
t5        e5     t5
t6        e3     t6
t7        e6     t7
t8        e3     t8
t9        e1     t9
t10       e1    t10
t11       e3    t11
t12       e5    t12
t13       e1    t13
t14       e3    t14
t15       e6    t15
t16       e1    t16
t17       e4    t17
t18       e2    t18
t19       e3    t19
t20       e2    t20
t21       e4    t21
t22       e3    t22
t23       e6    t23
t24       e1    t24
t25       e6    t25
t26       e1    t26
t27       e4    t27
t28       e6    t28
t29       e3    t29
t30       e1    t30
t31       e2    t31
t32       e1    t32
t33       e4    t33
t34       e2    t34
t35       e3    t35
t36       e2    t36
t37       e6    t37
t38       e6    t38
t39       e1    t39
t40       e3    t40

我需要对其进行转换,以获取一个数据框,其中每个员工都有一列填写各自任务的列。

我尝试使用

reshape(dfts, idvar = "employee",
    timevar = "task", direction = "wide")

但不起作用

任何的想法?

谢谢

Vivek空降

嘿,我有tidy办法解决。但是,要获得您想要的结果,最终将需要创建一个包含许多的数据框,NA因为每个员工都有不同数量的任务。另外,如果您直接使用点差,则会产生如下错误:Error: Duplicate identifiers for rows

为避免这种情况,请在其中输入mutateid列,然后在使用跨页后取消选择它。

我还将您的DF写入了csv中以进行读取。

library(tidyverse)

df <- read_csv("~/Desktop/dummy_data.csv") %>% 
  mutate(id = 1:n()) %>% 
  spread(employee, task) %>% 
  select(-id)

# A tibble: 40 x 6
   e1    e2    e3    e4    e5    e6   
   <chr> <chr> <chr> <chr> <chr> <chr>
 1 NA    NA    NA    t1    NA    NA   
 2 NA    NA    t2    NA    NA    NA   
 3 NA    NA    NA    NA    t3    NA   
 4 NA    NA    NA    NA    NA    t4   
 5 NA    NA    NA    NA    t5    NA   
 6 NA    NA    t6    NA    NA    NA   
 7 NA    NA    NA    NA    NA    t7   
 8 NA    NA    t8    NA    NA    NA   
 9 t9    NA    NA    NA    NA    NA   
10 t10   NA    NA    NA    NA    NA   
# ... with 30 more rows

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章