[英]expand a data frame in R
我有一個如下數據框:
Var1 Var2
1 a a
2 a b
3 b a
4 b b
我想要一個包含值1和2的ID列。如何擴展上述數據框,以使最終數據框看起來像這樣?
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
嗯,感謝MKR,問題出在包裝上。
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)
這是很普遍的事情:
library(dplyr)
x <- head(cars,2)
bind_rows(replicate(3,x,simplify = FALSE),.id="ID")
# ID speed dist
# 1 1 4 2
# 2 1 4 10
# 3 2 4 2
# 4 2 4 10
# 5 3 4 2
# 6 3 4 10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.