我有這個資料框:
df <- structure(list(id = c(1L, 1L, 1L, 2L, 2L, 3L), var = c("A", "B",
"C", "B", "C", "C")), class = "data.frame", row.names = c(NA,
-6L))
id var
1 1 A
2 1 B
3 1 C
4 2 B
5 2 C
6 3 C
我想得到這個資料框:
id var
1 1 A
2 1 B
3 1 C
4 2 <NA>
5 2 B
6 2 C
7 3 <NA>
8 3 <NA>
9 3 C
我想學習如何使用complete 或expand.grid在這種情況下
我嘗試了幾種方法但沒有成功:我的嘗試之一:
df %>%
complete(id, var, fill=list(NA))
uj5u.com熱心網友回復:
創建一個重復的 'var' 列,然后complete在另一列上執行,這使得NA'var' 列中的 'var' 列,然后洗掉重復的 'var' 列
library(dplyr)
library(tidyr)
df %>%
mutate(var1 = var) %>%
complete(id, var1) %>%
select(-var1)
-輸出
# A tibble: 9 × 2
id var
<int> <chr>
1 1 A
2 1 B
3 1 C
4 2 <NA>
5 2 B
6 2 C
7 3 <NA>
8 3 <NA>
9 3 C
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325670.html
上一篇:R-如果欄位A為空,并且欄位B包含某些部分字串,則在欄位A中添加單詞
下一篇:如何在R中附加日期/持續時間法術
