pivot_longer 或另一种将数据从宽数据转换为长数据的方法,并使用新列来保存键
pivot_longer or another method to convert data from wide to long with a new column to hold the key
我正在尝试 table 从宽到长,但我需要创建一个新列来保存数据描述。
es0 es1 es2 es3
1 2 a b
2 3 c a
a b 1 3
进入
es0 1
es0 2
es0 a
es1 2
es1 3
es1 b
es2 a
es2 c
...
我似乎想不通如何在新专栏中做到这一点。我在使用 gather、pivot_longer、melt、smelt... 等搜索时发现的所有方法都需要一个“关键”列来打开
date.table
library(data.table)
DT <- fread("es0 es1 es2 es3
1 2 a b
2 3 c a
a b 1 3")
melt(DT, measure.vars = names(DT))
# variable value
# 1: es0 1
# 2: es0 2
# 3: es0 a
# 4: es1 2
# 5: es1 3
# 6: es1 b
# 7: es2 a
# 8: es2 c
# 9: es2 1
#10: es3 b
#11: es3 a
#12: es3 3
tidyverse
library(tidyverse)
mydata <- read.table(text = "es0 es1 es2 es3
1 2 a b
2 3 c a
a b 1 3", header = TRUE)
mydata %>% pivot_longer(everything())
# A tibble: 12 x 2
# name value
# <chr> <chr>
# 1 es0 1
# 2 es1 2
# 3 es2 a
# 4 es3 b
# 5 es0 2
# 6 es1 3
# 7 es2 c
# 8 es3 a
# 9 es0 a
#10 es1 b
#11 es2 1
#12 es3 3
我正在尝试 table 从宽到长,但我需要创建一个新列来保存数据描述。
es0 es1 es2 es3
1 2 a b
2 3 c a
a b 1 3
进入
es0 1
es0 2
es0 a
es1 2
es1 3
es1 b
es2 a
es2 c
...
我似乎想不通如何在新专栏中做到这一点。我在使用 gather、pivot_longer、melt、smelt... 等搜索时发现的所有方法都需要一个“关键”列来打开
date.table
library(data.table)
DT <- fread("es0 es1 es2 es3
1 2 a b
2 3 c a
a b 1 3")
melt(DT, measure.vars = names(DT))
# variable value
# 1: es0 1
# 2: es0 2
# 3: es0 a
# 4: es1 2
# 5: es1 3
# 6: es1 b
# 7: es2 a
# 8: es2 c
# 9: es2 1
#10: es3 b
#11: es3 a
#12: es3 3
tidyverse
library(tidyverse)
mydata <- read.table(text = "es0 es1 es2 es3
1 2 a b
2 3 c a
a b 1 3", header = TRUE)
mydata %>% pivot_longer(everything())
# A tibble: 12 x 2
# name value
# <chr> <chr>
# 1 es0 1
# 2 es1 2
# 3 es2 a
# 4 es3 b
# 5 es0 2
# 6 es1 3
# 7 es2 c
# 8 es3 a
# 9 es0 a
#10 es1 b
#11 es2 1
#12 es3 3