我有一个这样的数据帧
rest_id task_name quarter nc
123 labeling 1 TRUE
123 labeling 2 FALSE
123 labeling 3 FALSE
123 labeling 4 FALSE
123 cooking 1 TRUE
123 cooking 2 FALSE
123 cooking 3 TRUE
123 cooking 4 FALSE
123 cleaning 1 TRUE
123 cleaning 2 FALSE
123 cleaning 3 TRUE
123 cleaning 4 FALSE我想把它旋转成这样
rest_id quarter labeling cooking cleaning
123 1 TRUE TRUE TRUE
123 2 FALSE FALSE FALSE
123 3 FALSE TRUE TRUE
123 4 FALSE FALSE FALSE我试过了:
X <- pivot_wider(df,
names_from = task_name,
values_from = nc,
values_fill = list(nc=F))但是它没有给我我想要的输出..有人能帮我吗?
发布于 2020-08-14 03:47:38
我们不需要为宽格式创建列名的向量。names_from从dataset的'task_name‘列中进行选择,并根据该列的唯一值创建宽列名称
library(dplyr)
library(tidyr)
df %>%
pivot_wider(names_from = task_name, values_from = nc,
values_fill = list(nc = FALSE))
# A tibble: 4 x 5
# rest_id quarter labeling cooking cleaning
# <int> <int> <lgl> <lgl> <lgl>
#1 123 1 TRUE TRUE TRUE
#2 123 2 FALSE FALSE FALSE
#3 123 3 FALSE TRUE TRUE
#4 123 4 FALSE FALSE FALSE 数据
df <- structure(list(rest_id = c(123L, 123L, 123L, 123L, 123L, 123L,
123L, 123L, 123L, 123L, 123L, 123L), task_name = c("labeling",
"labeling", "labeling", "labeling", "cooking", "cooking", "cooking",
"cooking", "cleaning", "cleaning", "cleaning", "cleaning"), quarter = c(1L,
2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), nc = c(TRUE, FALSE,
FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE
)), class = "data.frame", row.names = c(NA, -12L))https://stackoverflow.com/questions/63402239
复制相似问题