尝试出于指标目的将数据从数据透视表转换为列表视图。
我们以二进制(0或1)矩阵格式接收数据:
| Item | North | East | South | West |
| Apples | 1 | 0 | 1 | 0 |
| Oranges | 0 | 1 | 1 | 0 |
| Bananas | 0 | 1 | 1 | 1 |
但是需要将其转换为列表视图:
| Item | Store |
| Apples | North |
| Apples | South |
| Oranges | East |
| Oranges | South |
| Bananas | East |
| Bananas | South |
| Bananas | West |
任何帮助将不胜感激。
答案 0 :(得分:2)
在R
中,一种选择是将数据gather
转换为“长”格式,filter
将“ val”为1的行并删除“ val”列>
library(tidyverse)
df1 %>%
mutate(rn = row_number()) %>%
gather(Store, val, -Item, -rn) %>%
filter(val == 1) %>%
arrange(rn) %>%
select(-val, -rn)
# Item Store
#1 Apples North
#2 Apples South
#3 Oranges East
#4 Oranges South
#5 Bananas East
#6 Bananas South
#7 Bananas West
df1 <- structure(list(Item = c("Apples", "Oranges", "Bananas"), North = c(1L,
0L, 0L), East = c(0L, 1L, 1L), South = c(1L, 1L, 1L), West = c(0L,
0L, 1L)), class = "data.frame", row.names = c(NA, -3L))