我有以下数据框。
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")
但不起作用
任何的想法?
谢谢
嘿,我有tidy
办法解决。但是,要获得您想要的结果,最终将需要创建一个包含许多的数据框,NA
因为每个员工都有不同数量的任务。另外,如果您直接使用点差,则会产生如下错误:Error: Duplicate identifiers for rows
。
为避免这种情况,请在其中输入mutate
一id
列,然后在使用跨页后取消选择它。
我还将您的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] 删除。
我来说两句