我想在R中做一个简单的减法,但我不知道如何解决它。我想知道如果我必须做一个循环或有一个功能。如何逐列减去一列?
我有一列数字变量,我想用n-1减去n。
Time_Day Diff
10 10
15 5
45 30
60 15
因此,我想找到变量“差异”。
我想在R中做一个简单的减法,但我不知道如何解决它。我想知道如果我必须做一个循环或有一个功能。如何逐列减去一列?
我有一列数字变量,我想用n-1减去n。
Time_Day Diff
10 10
15 5
45 30
60 15
因此,我想找到变量“差异”。
你也可以用包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
谢谢你这个完美的答案! – Marie
很高兴听到:) –
这是不是你所需要的尝试?
这里我们列保存为一个变量:
c <- c(10, 15, 45, 60)
现在我们添加一个0开始,然后切断最后一个元素:
cm1 <- c(0, c)[1:length(c)]
现在我们减去两个:
dif <- c - cm1
如果我们打印出来,我们会得到您要的:
dif # 10 5 30 15
谢谢,但我更喜欢diff或dplyr的简单方法:)) – Marie
很高兴你找到了你的答案!祝你的项目好运。 :-) –
随着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)))
谢谢,它运作良好:)) – Marie
看看'diff' – Victorp
谢谢你,我不知道这个功能? )) – Marie