【问题标题】:R - Dataframe manipulationR - 数据框操作
【发布时间】:2021-06-28 08:50:13
【问题描述】:

我有如下表

Food Fried Boiled
Egg 3 2
Fish 5 3

这个Dataframe的代码是

Names = c("Food", "Fried", "Boiled")
Egg = c("Egg", 3, 2)
Fish = c("Fish", 5, 3)
df = as.data.frame(rbind(Egg, Fish)) 
colnames(df) = Names; rownames(df) = NULL

我想将 Dataframe 操作为以下

Food Fried/Boiled
Egg Fried
Egg Fried
Egg Fried
Egg Boiled
Egg Boiled
Fish Fried
Fish Fried
Fish Fried
Fish Fried
Fish Fried
Fish Boiled
Fish Boiled
Fish Boiled

第 2 列“Fried/Boiled”为第一个表中的 Fried 和 Boiled 的每个值分别显示一个新行。

提前致谢!

【问题讨论】:

    标签: r dataframe group-by aggregate data-manipulation


    【解决方案1】:

    这行得通吗:

    library(dplyr)
    library(tidyr)
    df %>% pivot_longer(cols = -Food) %>% type.convert(as.is = T) %>% uncount(value)
    # A tibble: 13 x 2
       Food  name  
       <chr> <chr> 
     1 Egg   Fried 
     2 Egg   Fried 
     3 Egg   Fried 
     4 Egg   Boiled
     5 Egg   Boiled
     6 Fish  Fried 
     7 Fish  Fried 
     8 Fish  Fried 
     9 Fish  Fried 
    10 Fish  Fried 
    11 Fish  Boiled
    12 Fish  Boiled
    13 Fish  Boiled
    

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 2015-09-19
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 2015-06-26
      • 2020-11-20
      • 2020-07-22
      • 2017-01-25
      相关资源
      最近更新 更多