如何修改和转置杂乱的数据集?

How can I modify and transpose a messy dataset?

我计划将我的数据集从左图转换为右图:

我仍在学习如何使用 R 进行分析,如果有人知道如何在 R 中进行分析,我将不胜感激:)

R

中的 data.table 包中提供了一个很好的功能
dcast(table, Test ~ Column1, value.var = "Preference")

您可以查看函数的功能 here。 还有一个选项可以使用 melt 函数 return 回到 table 的初始长版本。

tidyr 包中的

pivot_wider 应该可以做到这一点

library(tidyverse)

foo <- tibble(
  ID = paste0('Female00', c(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 5, 6)), 
  Test = c('Food', 'Beverage', 'Color', 'Beverage', 'Food', 'Color', 'Food', 'Beverage', 'Food', 'Beverage', 'Color', 'Food', 'Color'), 
  Preference = c('Strong', 'Strong', 'Medium', 'Low', 'Medium', 'Medium', 'Strong', 'Low', 'Low', 'Strong', 'Low', 'Medium', 'Medium')
)

foo %>%
  pivot_wider( 
    names_from = ID,
    values_from = Preference, 
    values_fill = NA
  )

只是转置数据框的问题:

df
         Id     Test Preference
1 Female001     Food     Strong
2 Female001 Beverage     Strong
3 Female001    Color     Medium
4 Female002     Food     Medium
5 Female002 Beverage        Low
6 Female003    Color     Medium
7 Female003     Food     Strong
8 Female003 Beverage        Low
> library(tidyr)
> df %>% spread(Id,Preference)
      Test Female001 Female002 Female003
1 Beverage    Strong       Low       Low
2    Color    Medium      <NA>    Medium
3     Food    Strong    Medium    Strong