gpt4 book ai didi

r - 从上一列中减去一列

转载 作者:行者123 更新时间:2023-12-01 15:58:35 26 4
gpt4 key购买 nike

示例数据

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,其中有四列测量累积距离。我想创建一个新列来给出每列的实际距离,即从上一列中减去下一列。例如该表应如下所示:

       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) ???)

最佳答案

是的,你想要diff...

dfData[,-c(1:2)] <- t(apply(dfData[,-1], 1, diff))

dfData
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

关于r - 从上一列中减去一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49552469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com