所以我的資料框中有 5 列:
ID pos strand nucleotide count
id1 12 A 13
id1 13 C 25
id2 24 G 10
id2 25 T 25
id2 26 A 10
id3 10 C 5
我正在嘗試制作這樣的串列或字典:
mylist <- [[id1,[[id1,12, ,A,13],[id1,13, ,C,25]]],
[id2,[[id2,24, ,G,10],[id2,25, ,T,25],[id2,26, ,A,10]]],
[id3,[[id3,10, ,C,5]]]
所以基本上,它是一個串列串列(它有兩個元素,一個是 id 名稱,另一個是行串列,每一行也應該是一個串列)。
我在下面嘗試了這段代碼:
myl = list()
for (i in seq(nrow(res))) {
myl[[i]] <- unclass(res[i,])
}
但它只給了我行串列,而不是按 id 分組。我也嘗試過使用 df_to_nest:
nestedlist = df_to_nest(data.table(dat), as.vector("seqnames"), count_col = NULL, value_cols = c('pos', 'strand', 'nucleotide', 'count'))
但它只有名稱,沒有任何元素。
還有什么我可以嘗試的嗎?
輸出str(data):
'data.frame': 7 obs. of 5 variables:
$ seqnames : Factor w/ 3138 levels "id1","id2",..: 322 322 330 330 330 994 994
$ pos : int 2805 2806 5066 5067 5068 3348 3349
$ strand : Factor w/ 3 levels " ","-","*": 2 2 1 1 1 2 1
$ nucleotide: Factor w/ 8 levels "A","C","G","T",..: 1 4 3 3 3 1 1
$ count : int 1 1 1 1 1 97 101
我有一個非常大的資料框,在這里我只選擇了 7 行具有 3 個不同的 id 名稱。
uj5u.com熱心網友回復:
像這樣的東西應該可以作業:
data <- read.table(header = TRUE, text =
" ID pos strand nucleotide count
id1 12 A 13
id1 13 C 25
id2 24 G 10
id2 25 T 25
id2 26 A 10
id3 10 C 5")
l <- split(unname(split(data, seq_len(nrow(data)))), data$ID)
ll <- Map(list, names(l), l)
ll
## $id1
## $id1[[1]]
## [1] "id1"
##
## $id1[[2]]
## $id1[[2]][[1]]
## ID pos strand nucleotide count
## 1 id1 12 A 13
##
## $id1[[2]][[2]]
## ID pos strand nucleotide count
## 2 id1 13 C 25
##
##
##
## $id2
## $id2[[1]]
## [1] "id2"
##
## $id2[[2]]
## $id2[[2]][[1]]
## ID pos strand nucleotide count
## 3 id2 24 G 10
##
## $id2[[2]][[2]]
## ID pos strand nucleotide count
## 4 id2 25 T 25
##
## $id2[[2]][[3]]
## ID pos strand nucleotide count
## 5 id2 26 A 10
##
##
##
## $id3
## $id3[[1]]
## [1] "id3"
##
## $id3[[2]]
## $id3[[2]][[1]]
## ID pos strand nucleotide count
## 6 id3 10 C 5
在這里,ll被命名為 2 元素串列的串列形式:
list(<ID>, <list of 1-row data frames>)
但是有一個冗余,因為ll將每個 ID 存盤兩次:一次在其names屬性中,另一次作為 2 元素子串列之一的第一個元素。l在 R 中,使用, 而不是, 作為您的“字典”會更自然ll,因為這樣您就可以l$id1檢索id1行串列,而不是ll$id1[[2L]].
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442262.html
上一篇:PANDAS:根據多個if條件為特定列中的每一行分配一個值
下一篇:如何在R中解壓縮元組格式?
