如何逐行减去一列?
How to substract a column by row?
我想在 R 中做一个简单的减法,但我不知道如何解决。我想知道我是否必须做一个循环或者是否有一个函数。
我有一列包含数字变量,我想用 n-1 减去 n。
Time_Day Diff
10 10
15 5
45 30
60 15
因此,我想找到变量"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)))
我想在 R 中做一个简单的减法,但我不知道如何解决。我想知道我是否必须做一个循环或者是否有一个函数。
我有一列包含数字变量,我想用 n-1 减去 n。
Time_Day Diff
10 10
15 5
45 30
60 15
因此,我想找到变量"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)))