我很难弄清楚如何在变量/数据之间移动以实现3列数据框。原始数据框包含200多个列,我想四处移动数据,以使其看起来像下面显示的示例。
没有太多背景知识,因为我不确定如何开始转换数据框。
Candy_Hierarchy <- tribble(~COUNTRY, ~candy1, ~candy2, ~candy3,
'US, Canada, and UK', 1.6, 1, 0.8,
'United States',1.67, 1, 1,
'Canada', 2, 0, 1,
'United Kingdom', 1, 2, 0)
进入
Candy_Hierarchy <- tribble(~Country, ~Candy, ~Average,
'US, Canada, and UK', 'candy1', 1.6,
'US, Canada, and UK', 'candy2', 1,
'US, Canada, and UK', 'candy3', 0.8,
'United States', 'candy1', 1.67,
'United States', 'candy2', 1,
'United States', 'candy3', 1,
'Canada', 'candy1', 2,
'Canada', 'candy2', 0,
'Canada', 'candy3', 1,
'United Kingdom', 'candy1', 1,
'United Kingdom', 'candy2', 2,
'United Kingdom', 'candy3', 0)
没有收到任何错误消息,因为我不确定如何实现自己的目标。
答案 0 :(得分:1)
我们可以使用gather
。
library(tidyverse)
Candy_Hierarchy2 <- Candy_Hierarchy %>%
gather(Candy, Average, -COUNTRY) %>%
arrange(COUNTRY, Candy)
Candy_Hierarchy2
# # A tibble: 12 x 3
# COUNTRY Candy Average
# <chr> <chr> <dbl>
# 1 Canada candy1 2
# 2 Canada candy2 0
# 3 Canada candy3 1
# 4 United Kingdom candy1 1
# 5 United Kingdom candy2 2
# 6 United Kingdom candy3 0
# 7 United States candy1 1.67
# 8 United States candy2 1
# 9 United States candy3 1
# 10 US, Canada, and UK candy1 1.6
# 11 US, Canada, and UK candy2 1
# 12 US, Canada, and UK candy3 0.8