我想在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