【发布时间】:2015-07-10 07:42:37
【问题描述】:
我想在 R 中做一个简单的减法,但我不知道如何解决它。我想知道我是否必须做一个循环或者是否有一个函数。
我有一列包含数值变量,我想用 n-1 减去 n。
Time_Day Diff
10 10
15 5
45 30
60 15
因此,我想找到变量“Diff”。
【问题讨论】:
-
看看
?diff -
谢谢,我不知道这个功能:))
我想在 R 中做一个简单的减法,但我不知道如何解决它。我想知道我是否必须做一个循环或者是否有一个函数。
我有一列包含数值变量,我想用 n-1 减去 n。
Time_Day Diff
10 10
15 5
45 30
60 15
因此,我想找到变量“Diff”。
【问题讨论】:
?diff
您也可以尝试使用包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
【讨论】:
这能满足你的需要吗?
这里我们将列保存为变量:
c <- c(10, 15, 45, 60)
现在我们在开头添加一个 0,然后切断最后一个元素:
cm1 <- c(0, c)[1:length(c)]
现在我们将两者相减:
dif <- c - cm1
如果我们把它打印出来,我们就会得到你想要的东西:
dif # 10 5 30 15
【讨论】:
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)))
【讨论】: