[英]R: create a new column based on multiple conditions of two columns with dates
我有一個如下所示的數據框(簡短示例):
df
日期 (dd-mm-yyyy)
date1 date2 Value
01-01-2016 01-01-2016 100
01-02-2016 01-01-2016 90
01-03-2016 01-01-2016 110
01-02-2016 01-02-2016 180
01-03-2016 01-02-2016 80
01-04-2016 01-02-2016 100
01-05-2016 01-02-2016 70
01-03-2016 01-03-2016 90
01-04-2016 01-03-2016 100
01-05-2016 01-03-2016 80
我想根據以下標准創建一個新列:如果 date1 = date2(例如 01-02-2016 = 01-02-2016)我需要在新列“Value_new”中放入“Value”列中的值行,其中 date1 = date2 - 一個月(例如 01-02-2016 = 01-01-2016)。 如果 date1 = date2 - 可用一個月沒有值,則新值應等於 0。
輸出應該是這樣的:
date1 date2 Value Value_new
01-01-2016 01-01-2016 100 0
01-02-2016 01-01-2016 90 0
01-03-2016 01-01-2016 110 0
01-02-2016 01-02-2016 180 90
01-03-2016 01-02-2016 80 0
01-04-2016 01-02-2016 100 0
01-05-2016 01-02-2016 70 0
01-03-2016 01-03-2016 90 80
01-04-2016 01-03-2016 100 0
01-05-2016 01-03-2016 80 0
我試圖通過使用下一個代碼來解決這個問題,但它不能正常工作:
df$Value_new <- 0
df$Value_new[df$date1==df$date2] <- df$Value[(df$date1 == (df$date2 - months(1))]
我是 R 編程的新手,非常感謝每一個建議。
您需要更具體地了解您從哪個 Value 列觀察中獲取。 我無法編碼任何東西,因為即使我也不確定。 如果我是你,我會將所有過時的內容轉換為數字格式以保持簡單。 這樣,您仍然可以通過查找列內和列間觀察值之間的差異來保留 1 個月的時間。 差異將等於 10,000。 但是,我不明白您要在 Value_new 中返回什么。 我知道您正在嘗試從給定行中 date1==date2 的值中減去一個值,但僅此而已。 數據框中有幾個月的重復,那么 R 怎么知道從哪一個中抓取呢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.