r - expand a data frame in R
问题描述
I have a data frame like below:-
Var1 Var2
1 a a
2 a b
3 b a
4 b b
I want an ID column containing values 1 and 2. How do I expand the above data frame so that the final data frame looks something like this?
Var1 Var2 ID
1 a a 1
2 a b 1
3 b a 1
4 b b 2
1 a a 2
2 a b 2
3 b a 2
4 b b 2
Ahh thanks to MKR, the issue is due to the package.
library(dplyr)
df <- read.table(text =
"Var1 Var2
1 a a
2 a b
3 b a
4 b b",
header = TRUE, stringsAsFactors = FALSE)
df %>% group_by(Var1, Var2) %>% expand(ID = 1:2) %>%
arrange(ID)
解决方案
许多选项可用于获得所需的结果。但也许 OP 似乎热衷于使用tidyr::expand
. 一个解决方案可以是:
library(dplyr)
library(tidyr)
df %>% group_by(Var1, Var2) %>% expand(ID = 1:2) %>%
arrange(ID)
# # A tibble: 8 x 3
# # Groups: Var1, Var2 [4]
# Var1 Var2 ID
# <chr> <chr> <int>
# 1 a a 1
# 2 a b 1
# 3 b a 1
# 4 b b 1
# 5 a a 2
# 6 a b 2
# 7 b a 2
# 8 b b 2
数据:
df <- read.table(text =
"Var1 Var2
1 a a
2 a b
3 b a
4 b b",
header = TRUE, stringsAsFactors = FALSE)
推荐阅读
- amazon-web-services - 我无法将 Docker 映像推送到 AWS ecr
- sql - 我们可以在 Google Cloud SQL 中创建多少个数据库?
- c - 素数和:结果有什么问题?
- blazor - ITfoxtec.Identity.BlazorWebAssembly.OpenidConnect blazor 示例无法检索元数据
- html - 在 django 中清除浏览器缓存
- sql-server - Alembic MSSQL 唯一约束允许空值
- wordpress-rest-api - 在 WordPress 中使用 WPML 和 REST API 创建第二语言的翻译帖子
- daml - 是否有任何内置函数可以验证 Daml 中的数字签名?
- textarea - diagrams.net (draw.io) 格式面板中 textarea 的奇怪行为
- tcc - TCC - isNull 产生不一致的结果