Я хочу вычесть каждый последующий столбец со значениями из предыдущего столбца.Вычтите два столбца с NA на несколько столбцов
Список
A B C D E
1 2 3 4 6
2 2 2 3 NA
3 4 5 NA NA
1 NA NA 2 4
Результат
1 1 1 2
0 0 1 NA
1 1 NA NA
NA NA NA 2
я могу сделать это с помощью колонки связывающей всех результатов as.matrix((ifelse(!is.na(List[,1])&!is.na(List[,2], List[,2]-List[,1], "NA")))
по столбцам, но это кажется ужасно утомительно.
Есть ли более быстрый способ?
В случае последней полосы в
List
, как я могу получить значение разницы между двумя значениями (столбец D - столбец A), разделенный интервалами между ними (3 интервала)? Таким образом, вместоResult
, мы имеем:
Alt_result
1 1 1 2
0 0 1 NA
1 1 NA NA
NA NA 0.333 2
Что вы подразумеваете под 'последней lane'? – akrun
Последняя строка 'List', мы имеем c (1, NA, NA, 2,4). В пункте 2 можно было бы изменить код таким образом, чтобы он делит разницу между двумя столбцами на расстояние между двумя значениями, отличными от NA? – Turtle
Извините, мне это непонятно. Почему вы меняете только одну ячейку, то есть с 0,33? – akrun