Я пытаюсь собрать весь массив данных (часы 0, 3, 6 ... 48).Мой код в настоящее время только собирает hh = 0, потому что «имя» строки содержит запятую.
Данные в tempjson $ score_value структурированы следующим образом:
tempjson$score_value
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 3.492809 2.962649 2.770052 2.756788 2.332905 2.338647 2.719658 3.080747
[2,] 3.558785 3.581791 3.475497 3.451713 3.009123 3.104995 3.397145 3.781619
и т. Д.
Я пытаюсь построить значение оценки для каждого часа (каждого столбца) дляоба эксперимента (оба ряда).
tempjson$score_value[1]
[1] 3.492809
выбирает только самый первый элемент, но
> tempjson$score_value[1,]
[1] 3.492809 2.962649 2.770052 2.756788 2.332905 2.338647 2.719658 3.080747
3.406330 3.281600 3.028505 2.976836 2.575598 2.421316 2.894790 3.132405
3.541107
предоставляет всю строку.Мой код представляет собой цикл for, который пытается скомпилировать массив временных значений всех значений часов для обоих экспериментов [2x17]:
for(exp in seq(1,length(expname)))
for(hh in tempjson$label[[exp]])
tempscore[exp,which(list.runhour==hh)]=tempjson$score_value[[exp]][which(tempjson$label[[exp]]==hh)]
где:
> expname
[1] "experiment1" "experiment2"
и
> list.runhour
[1] "0" "3" "6" "9" "12" "15" "18" "21" "24" "27" "30" "33" "36" "39" "42"
[16] "45" "48"
и
> tempjson$label
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[1,] "0" "3" "6" "9" "12" "15" "18" "21" "24" "27" "30" "33" "36" "39"
[2,] "0" "3" "6" "9" "12" "15" "18" "21" "24" "27" "30" "33" "36" "39"
[,15] [,16] [,17]
[1,] "42" "45" "48"
[2,] "42" "45" "48"
и
> tempjson$score_value
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 3.492809 2.962649 2.770052 2.756788 2.332905 2.338647 2.719658 3.080747
[2,] 3.558785 3.581791 3.475497 3.451713 3.009123 3.104995 3.397145 3.781619
[,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
[1,] 3.406330 3.28160 3.028505 2.976836 2.575598 2.421316 2.894790 3.132405
[2,] 4.163044 3.89846 3.626449 3.615926 3.260005 3.190443 3.648776 3.873211
[,17]
[1,] 3.541107
[2,] 4.256343
Запуск этого кода будет результатом строки 1 в exp = [1], а не [1,].Таким образом, hh only ever = "0", а не 16 других значений [массив 1x17 от 0 до 48].
Как получить exp равным имени строки, т.е. [1,], чтобы цикл for правильно вызывал все столбцы (чч)?