Образец данных
dfData <- data.frame(ID = c(1, 2, 3, 4, 5),
DistA = c(10, 8, 15, 22, 15),
DistB = c(15, 35, 40, 33, 20),
DistC = c(20,40,50,45,30),
DistD = c(60,55,55,48,50))
ID DistA DistB DistC DistD
1 1 10 15 20 60
2 2 8 35 40 55
3 3 15 40 50 55
4 4 22 33 45 48
5 5 15 20 30 50
У меня есть несколько идентификаторов, для которых есть четыре столбца, которые измеряют совокупное расстояние. Я хочу создать новый столбец, который дает фактическое расстояние для каждого столбца, то есть вычитает следующий столбец из предыдущего столбца. Например, таблица должна выглядеть так:
ID DistA DistB DistC DistD
1 1 10 5 5 40
2 2 8 27 5 15
3 3 15 25 10 5
4 4 22 11 12 3
5 5 15 5 10 20
Более длинный способ сделать это
dfData$disA <- dfData$DistA
dfData$disB <- dfData$DistB - dfData$DistA
dfData$disC <- dfData$DistC - dfData$DistB
dfData$disD <- dfData$DistD - dfData$DistC
Есть ли более короткий способ сделать это, например:
apply(dfData,1,function(x) ???)
data.frame
или других необходимых объектов. Это упрощает работу. - person MKR   schedule 29.03.2018