我有下面的數據框:
dummy<-structure(list(Name = c("A", "B", "C", "A", "B", "C"), `#BISB` = c(2,
6, 4, 0, 4, 6), `#BISC` = c(2, 6, 4, 0, 4, 6), `#BISD` = c(2,
6, 4, 0, 4, 6), `#BISE` = c(2, 6, 4, 0, 4, 6), `#BISF` = c(2,
6, 4, 0, 4, 6), `#BISG` = c(2, 6, 4, 0, 4, 6), `#BISH` = c(2,
6, 4, 0, 4, 6)), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
我想在nodes
數據框中重塑它。此nodes
數據框應包含一列以id
索引號 ( 1,2,3
...) 命名的列,第二列將被命名group
,它將包含該列的Name
所有唯一值和所有唯一列名,除了來自數據框的列Name
,dummy
如:
id group
1 1 A
2 2 B
3 3 C
4 4 #BISB
5 5 #BISC
6 6 #BISD
7 7 #BISE
8 8 #BISF
9 9 #BISG
10 10 #BISH
我們可以summarise
通過取unique
'Name'的值來創建一個 tibble with ,將( c
) 與除第一個之外的列名連接起來,然後創建 'id' 作為序列 ( row_number()
)
library(dplyr)
dummy %>%
summarise(group = c(unique(Name), names(.)[-1])) %>%
mutate(id = row_number(), .before = 1)
-輸出
# A tibble: 10 × 2
id group
<int> <chr>
1 1 A
2 2 B
3 3 C
4 4 #BISB
5 5 #BISC
6 6 #BISD
7 7 #BISE
8 8 #BISF
9 9 #BISG
10 10 #BISH
或者更容易
out <- data.frame(group = c(unique(dummy$Name), names(dummy)[-1]))
out$id <- seq_len(nrow(out))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句