У меня есть следующая таблица данных:
>
dt
folder type value
1: 1 prob 0.683541877259838
2: 1 label 1
3: 1 prob 0.495066106474617
4: 1 label 1
5: 1 prob 0.640406598486647
6: 1 label 1
7: 1 prob 0.482671032167111
8: 1 label 1
9: 1 prob 0.683541877259838
10: 1 label 1
11: 1 prob 0.640406598486647
12: 1 label 0
13: 1 prob 0.726221221435974
14: 1 label 0
15: 1 prob 0.565276604111103
16: 1 label 1
17: 1 prob 0
18: 1 label 0
19: 1 prob 0.565276604111103
20: 1 label 1
21: 1 prob 0.726221221435974
22: 1 label 1
23: 1 prob 0.738455509755984
24: 1 label 1
25: 1 prob 1
26: 1 label 0
27: 1 prob 0.640406598486647
28: 1 label 0
29: 1 prob 0.743529095250444
30: 1 label 0
31: 1 prob 0.640406598486647
32: 1 label 0
33: 1 prob 0.726221221435974
34: 1 label 1
35: 1 prob 0.683541877259838
36: 1 label 1
folder type value
и я хочу получить вложенный список списка, подобный следующему (первый уровень - это переменная, включенная в столбец данных типа "type", второй уровень «папка», а затем все значения):
labels[[1]]
[1] 1 1 1 1 1 0
[6] 0 0 1
labels[[2]]
[1] 1 1 1 1 1 0
[6] 0 0 1
prob [[1]]
[1] 0.1 0.21 0.1 0.1 0.43 0.0
[6] 0.0 0 1
prob[[2]]
[1] 0.56 0.64 0.3 0.21 0.81 0.5
[6] 0.33 0.4
Я пробовал что-то вроде:
dt2 = dt[, {
l1 = list()
l1[[type]][[folder]]= as.list(value)
list(l1)
}, by = list(type,folder)]
dt3 = dt2[, list({
l2 = list()
l2[[type]][[folder]] = unlist(V1, recursive = FALSE)
l2
}), by = list(type, folder) ]
out = dt3[['V1']]
names(out) = dt3[['type']]
Но результат не является ожидаемым
$prob
$prob$`1`
$prob$`1`$`1`
$prob$`1`$`1`[[1]]
[1] "0.683541877259838"
$prob$`1`$`1`[[2]]
[1] "0.495066106474617"
$prob$`1`$`1`[[3]]
[1] "0.640406598486647"
$prob$`1`$`1`[[4]]
[1] "0.482671032167111"
$prob$`1`$`1`[[5]]
[1] "0.683541877259838"
$prob$`1`$`1`[[6]]
[1] "0.640406598486647"
$prob$`1`$`1`[[7]]
[1] "0.726221221435974"
$prob$`1`$`1`[[8]]
[1] "0.565276604111103"
$prob$`1`$`1`[[9]]
[1] "0"
$prob$`1`$`1`[[10]]
[1] "0.565276604111103"
$prob$`1`$`1`[[11]]
[1] "0.726221221435974"
$prob$`1`$`1`[[12]]
[1] "0.738455509755984"
$prob$`1`$`1`[[13]]
[1] "1"
$prob$`1`$`1`[[14]]
[1] "0.640406598486647"
$prob$`1`$`1`[[15]]
[1] "0.743529095250444"
$prob$`1`$`1`[[16]]
[1] "0.640406598486647"
$prob$`1`$`1`[[17]]
[1] "0.726221221435974"
$prob$`1`$`1`[[18]]
[1] "0.683541877259838"
$label
$label$`1`
$label$`1`$`1`
$label$`1`$`1`[[1]]
[1] "1"
$label$`1`$`1`[[2]]
[1] "1"
$label$`1`$`1`[[3]]
[1] "1"
$label$`1`$`1`[[4]]
[1] "1"
$label$`1`$`1`[[5]]
[1] "1"
$label$`1`$`1`[[6]]
[1] "0"
$label$`1`$`1`[[7]]
[1] "0"
$label$`1`$`1`[[8]]
[1] "1"
$label$`1`$`1`[[9]]
[1] "0"
$label$`1`$`1`[[10]]
[1] "1"
$label$`1`$`1`[[11]]
[1] "1"
$label$`1`$`1`[[12]]
[1] "1"
$label$`1`$`1`[[13]]
[1] "0"
$label$`1`$`1`[[14]]
[1] "0"
$label$`1`$`1`[[15]]
[1] "0"
$label$`1`$`1`[[16]]
[1] "0"
$label$`1`$`1`[[17]]
[1] "1"
$label$`1`$`1`[[18]]
[1] "1"
Любое предложение о том, как достичь этого формата списка?