Как создать группы подмножеств, идентифицируя уникальные строки в именах столбцов - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть фрейм данных:

`df <- data.frame(Year = 1940:2000, 
             sp99_002_04A_01 = rnorm(61, 1:100), 
             sp99_002_04B_01 = rnorm(61, 1:100), 
             sp99_002_05A_01 = rnorm(61, 1:100),
             sp99_006_01A_14 = rnorm(61, 1:100),
             sp99_023a_02B_06 = rnorm(61, 1:100),
             sp99_023a_05B_06 = rnorm(61, 1:100),
             sp99_010_03B_03 = rnorm(61, 1:100))`

Каждое имя отформатировано: kindyear_plot # (subset) _sample # _trial #, как показано выше.

Мне нужно сгруппировать столбцы для дальнейшего анализа по номеру участка. Это означает, что все столбцы, имеющие одинаковую уникальную символьную строку в расположении имен столбцов xxxx_THIS_xxxx_xx, не требуют вызова каждого графика # по имени.

1 Ответ

0 голосов
/ 14 февраля 2020

Я закончил этим:

'mydt <- fread("data.csv")

mydt <- melt.data.table(mydt, id.vars = "Year", value.name = 'measure', variable.name 
= "ID")
mydt <- na.omit(mydt)
mydt[, ID := as.character(ID)]

splitNames <- lapply(mydt$ID, FUN = function(x) {

splitUpID <- strsplit(x, split = "_")
plot <- splitUpID[[1]][2]

return(plot)
})
plots <- unlist(splitNames)
mydt[, plot := plots]'
...