如何使“pivot_longer”产生与“melt”函数完全相同的输出?

问题描述 投票:0回答:1

我正在整理我的原始数据框

install.packages('ottr')
library('ottr')
install.packages('pander')
library('pander')
install.packages('reshape2')
library('reshape2')
library('tidyverse')

disease_data <- data.frame(
  County = c("County A", "County B"),
  Day1 = c(109, 150),
  Day2 = c(106, 149),
  Day3 = c(104, 140),
  Day4 = c(102, 145),
  Day5 = c(100, 137)
)


disease_data %>%
  melt(
    id.vars = "County",       
    variable.name = "Day",   
    value.name = "Num.Cases"  
  ) %>%
  pander()


disease_data %>%
  pivot_longer(
    cols = !County,
    names_to = "Day",
    values_to = "Num.Cases"
  ) %>%
  pander()

My code

the output of melt function

the output of pivot longer

我想使用“pivot_longer”函数生成与“melt”函数生成的输出完全相同的输出。换句话说,我想使用“pivot_longer”函数使“Day”列按顺序(从Day1到Day5)排序。

我在“pivot_longer”函数中尝试了其他几个参数,但似乎不起作用。

r dataframe sorting pivot melt
1个回答
0
投票

使用

cols_vary = 'slowest'

disease_data %>%
   pivot_longer(-County, names_to = 'Day', values_to = 'Num.Cases',
                cols_vary = 'slowest')

# A tibble: 10 × 3
   County   Day   Num.Cases
   <chr>    <chr>     <dbl>
 1 County A Day1        109
 2 County B Day1        150
 3 County A Day2        106
 4 County B Day2        149
 5 County A Day3        104
 6 County B Day3        140
 7 County A Day4        102
 8 County B Day4        145
 9 County A Day5        100
10 County B Day5        137
© www.soinside.com 2019 - 2024. All rights reserved.