創建一個帶有列的數據框,該列將包含一列的唯一值和另一個數據框的唯一列名

Firmo23

我有下面的數據框:

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所有唯一值和所有唯一列名,除了來自數據框的列Namedummy如:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根據兩列的最大值在數據框中創建一個帶有列名的新列

為 Pandas 列中的每個唯一值創建新的數據框

在數據框中添加列標題是另一列的唯一值的列

創建一個基於 R 中數據框中另一列的列

創建一個包含數千列的 Spark 數據框,然後添加一列包含所有列的 ArrayType

創建數據框時創建基於另一列的列

將包含某個字符串的所有項目放在另一列的數據框中

R:如何根據不同長度的另一個數據框中的成對值將一列添加到數據框中?

根據唯一的列值將數據框拆分為更小的數據框

有沒有辦法用第二個數據框中的一列填充一個數據框中的一列?

檢查一個數據框中的值是否存在於另一個數據框中並創建列

如何在 ggplot 中創建一個圖例,將名稱和顏色分配給列而不是數據框列中的值?

將數據框添加到特定列下的另一個數據框

在python數據框中使用另一列值擴展一列

如果一個詞在數據框中的一列中,用另一個詞替換該詞並用新信息創建一個新行並添加到另一個數據幀

SQL 將數據從一列複製到另一個表的另一列

根據條件將一個數據框列的值分配給另一個數據框列

將選定列中的值和一個數據框中的匹配行覆蓋到另一個數據框中,R

PySpark:將所有定義為值的數據框列放入另一列

根據R中另一列數據框的組查找列的公共值

根據數據框 R 中的另一列更改列中的值

使用另一個包含鍵對的數據框更改數據框列中的值

根據另一列查找列的最小值並將結果保留為數據框

為每個唯一項目創建一個唯一項目的 df 和另一列的最大值

如何根據另一個數據框的行組織數據框的列?

在數據框中添加一列,其中包含一個包含 Tapply 的變量的內容

從字典創建 1 行數據框,包含三列並將變量附加到第一列

MYSQL根據另一列(這是外鍵)創建唯一ID

使用另一列向數據框添加一列