我想在R中做一个简单的减法,但我不知道如何解决它。我想知道我是否需要循环或是否有函数。
我有一个带有数字变量的列,我想将n减去n-1。
Time_Day Diff
10 10
15 5
45 30
60 15
因此,我想找到变量“Diff”。
答案 0 :(得分:2)
您也可以尝试使用包dplyr
library(dplyr)
mutate(df, dif=Time_Day-lag(Time_Day))
# Time_Day Diff dif
# 1 10 10 NA
# 2 15 5 5
# 3 45 30 30
# 4 60 15 15
答案 1 :(得分:1)
这可以满足您的需求吗?
这里我们将列保存为变量:
c <- c(10, 15, 45, 60)
现在我们在开头添加0,然后切掉最后一个元素:
cm1 <- c(0, c)[1:length(c)]
现在我们减去两个:
dif <- c - cm1
如果我们打印出来,我们就会得到你想要的东西:
dif # 10 5 30 15
答案 2 :(得分:1)
使用diff
:
df <- data.frame(Time_Day = c(10, 15, 45, 60))
df$Diff <- c(df$Time_Day[1], diff(df$Time_Day))
df
## Time_Day Diff
##1 10 10
##2 15 5
##3 45 30
##4 60 15
它也适用于dplyr
:
library("dplyr")
df <- data.frame(Time_Day = c(10, 15, 45, 60))
df %>% mutate(Diff = c(Time_Day[1], diff(Time_Day)))