我有一系列 s 中Subjects提到的评级的此类数据:AnnotationTrial
df <- structure(list(Subject = c("A", "A", "A", "B", "B", "B"), \n Annotation = c("f", "n", "n", "f", "n", "f"), \n Trial = c(1L, 2L, 3L, 1L, 2L, 3L),\n ID = c(1L, 2L, 3L, 1L, 2L, 3L),\n Trial_time = c("00:00:00.001", \n "00:00:00.002", "00:00:00.003", "00:00:00.001", \n "00:00:00.002", "00:00:00.003")), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))\nRun Code Online (Sandbox Code Playgroud)\n我想pivot_wider同时Trial保留每个 的所有Subject关联列。我所能做的就是这样,它会丢失列ID和Trial_time:
library(dplyr)\ndf %>%\n pivot_wider(Trial, \n names_from = c(Subject), \n names_glue = "{Subject}_{.value}",\n values_from = Annotation)\n# A tibble: 3 \xc3\x97 3\n Trial A_Annotation B_Annotation\n <int> <chr> <chr> \n1 1 f f \n2 2 n n \n3 3 n f \nRun Code Online (Sandbox Code Playgroud)\n我怎样才能pivot_wider获得这个结果:
Trial A_Annotation B_Annotation A_Trial B_Trial A_ID B_ID \n1 1 f f 1 1 1 1\n2 2 n n 2 2 2 2\n3 3 n f 3 3 3 3\nRun Code Online (Sandbox Code Playgroud)\n
添加其他变量values_from。
library(tidyr)\ndf %>% \n pivot_wider(id_cols = Trial, names_from = Subject, names_glue = "{Subject}_{.value}", \n values_from = c(Annotation, Trial_time, ID))\n\n# A tibble: 3 \xc3\x97 7\n Trial A_Annotation B_Annotation A_Trial_time B_Trial_time A_ID B_ID\n <int> <chr> <chr> <chr> <chr> <int> <int>\n1 1 f f 00:00:00.001 00:00:00.001 1 1\n2 2 n n 00:00:00.002 00:00:00.002 2 2\n3 3 n f 00:00:00.003 00:00:00.003 3 3\nRun Code Online (Sandbox Code Playgroud)\n数据
\ndf <- structure(list(Subject = c("A", "A", "A", "B", "B", "B"), \n Annotation = c("f", "n", "n", "f", "n", "f"), \n Trial = c(1L, 2L, 3L, 1L, 2L, 3L),\n ID = c(1L, 2L, 3L, 1L, 2L, 3L),\n Trial_time = c("00:00:00.001", \n "00:00:00.002", "00:00:00.003", "00:00:00.001", \n "00:00:00.002", "00:00:00.003")), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))\nRun Code Online (Sandbox Code Playgroud)\n