r - R - 数据框操作
问题描述
我有下表,如下所示
食物 | 油炸 | 煮沸 |
---|---|---|
蛋 | 3 | 2 |
鱼 | 5 | 3 |
此数据框的代码是
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 操作为以下
食物 | 炒/煮 |
---|---|
蛋 | 油炸 |
蛋 | 油炸 |
蛋 | 油炸 |
蛋 | 煮沸 |
蛋 | 煮沸 |
鱼 | 油炸 |
鱼 | 油炸 |
鱼 | 油炸 |
鱼 | 油炸 |
鱼 | 油炸 |
鱼 | 煮沸 |
鱼 | 煮沸 |
鱼 | 煮沸 |
第 2 列“Fried/Boiled”分别为第一个表中的 Fried 和 Boiled 的每个值显示了一个新行。
提前致谢!
解决方案
这是否有效:
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
推荐阅读
- python - 按索引拆分 numpy 值,导致形状不规则
- php - 在 foreach 中获取单个值
- python-3.x - Tukey HSD 测试的“float”和“str”错误实例之间不支持“<”
- html - % height 如果应用于 tbody - 在 FireFox 和 Microsoft Edge / IE 中不起作用,但在 Google Chrome 中起作用
- javascript - .map() 不是函数
- android - 像 Xcode 框架一样创建 Android Studio SDK 项目
- excel - 用于复制和粘贴的宏
- c++ - C++ 链接器命令失败
- sql - 获取一个月内最少15天出勤的学生名单,一年内连续4个月来
- angular - Angular 6 SSR TypeError:无法读取未定义的属性“根”