Создание цикла и сохранение результатов в матрице - PullRequest
0 голосов
/ 03 октября 2019

У меня есть кадр данных в R, который состоит из значений интенсивности (столбцы с нечетными номерами) и количества пикселей для каждого бина (столбцы с четными номерами). Я хочу суммировать значения в столбце 2 для значений столбца 1 в некотором диапазоне (биннинг). Столбцы с нечетными номерами имеют значения 0-5000, я хочу разделить их на ячейки по 200.

Для этого я подумал о проверке столбца 1, если он находится в пределах моего желаемого диапазона, преобразуйте значение true / false. результаты в числовом виде, умножьте на столбец 2 и суммируйте результат;это дает мне желаемый номер. Код выглядит следующим образом:

bin_height = as.numeric(g11_6[,1] >= 200 & g11_6[,1] < 400)*g11_6[,2]
sum(bin_height)

Теперь я хотел сделать цикл так, чтобы R вычислял результаты для каждого бина (400-600, 600-800 ...). Как я могу написать цикл дляэто?

Я пробовал:

for (k in 1:25){
bin_height = as.numeric(g11_6[,1] >= 200*(k-1) & g11_6[,1] < 200*k)*g11_6[,2]
sum(bin_height
}

, но ничего не делает (тоже не дает ошибок) ... Как я могу получить результат для каждого бина?

1 Ответ

0 голосов
/ 03 октября 2019

Вам нужно где-то хранить результаты.

results <- numeric(25)
for (k in 1:25){
bin_height <- as.numeric(g11_6[,1] >= 200*(k-1) & g11_6[,1] < 200*k)*g11_6[,2]
results[k] <- sum(bin_height)
}

Тогда у вас должна быть вся необходимая информация в векторе results.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...