讓我們從一個簡單的例子開始,之后將解釋我的需求。考慮一下這個資料框架:
df < -結構(list(landmark= c("Akanthion"/span>, "Asterion R PARIETAL R",
"Asterion R TEMPORAL R",/span> "Asterion R OCCIPITAL"。 "Asterion L PARIETAL L", "Asterion L PARIETAL L",
"Asterion L TEMPORAL L",/span> "Asterion L OCCIPITAL"。 "Basisoccipital anterior OCCIPITAL", "Basisoccipital anterior OCCIPITAL"?
"Basioccipital anterior SPHENOID", "Basion")。 MODULE = c(1, 4,
6, 7, 3。 5, 7。 7, 8, 7)),行。 names = c("Akanthion"/span>。 "Asterion R PARIETAL R",
"Asterion R TEMPORAL R",/span> "Asterion R OCCIPITAL"。 "Asterion L PARIETAL L", "Asterion L PARIETAL L",
"Asterion L TEMPORAL L",/span> "Asterion L OCCIPITAL"。 "Basisoccipital anterior OCCIPITAL", "Basisoccipital anterior OCCIPITAL"?
"Basioccipital anterior SPHENOID", "Basion")。 class = "data. frame")
這個資料框架由兩列組成,其中一列命名為MODULE。這一列有7個不同的數字,它們對應于不同的組(1、3、4、5、6、7、8)
我想得到的是,我想得到的是,我想得到的是,我想得到的是,我想得到的是,我想得到的是,我想得到的是
我想為MODULE中的每個組得到一個向量,并標明它們的行號。
例如:
Group_7 < - c(4,/span> 7。 8, 10)
Group_4 <- c(2)
我怎樣才能自動做到這一點?說實話,這只是我的原始資料框架的一個很小的樣本,它是由1487行組成的。
uj5u.com熱心網友回復:
我們可以用'MODULE'中的f對行的序列進行split,形成一個vectors的list
lst1 < - split(seq_len(nrow(df))。 paste0("Group_"。 df$MODULE))
輸出
lst1
$Group_1
[1] 1
$Group_3
[1]/span> 5
$Group_4
[1]/span> 2
$Group_5
[1]/span> 6
$Group_6
[1]/span> 3
$Group_7
[/span>1] 4 7 8 10
$Group_8
[1] 9
如果需要的話,把它放在串列中可能會更好,而不是在全域環境中創建物件,代碼是(不推薦)
list2env(lst1, .GlobalEnv)
uj5u.com熱心網友回復:
一個tidyverse選項,也能產生一個向量串列。
library(dplyr)
library(tibble)
df %>%。
mutate(id = row_number()) %> %
group_by(MODULE) %> %
mutate(x = list(id)) %> %
distinct(MODULE, x) %>%
arrange(MODULE) %>%
deframe()
# $`1`
# [1] 1
#
# $`3`
# [1] 5
#
# $`4`
# [1] 2
#
# $`5`
# [1] 6
#
# $`6`
# [1] 3
#
# $`7`
# [1] 4 7 8 10
#
# $`8`
# [1] 9
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/306879.html
標籤:
上一篇:ggplot2Facet_wrap圖形與自定義X軸標簽?
下一篇:如何動態地創建一個陣列的陣列?
