我正在處理包含日期的數據,並且有點麻煩。基本上我希望根據兩個現有日期和另一個變量計算一個新的日期,用於我的數據框中的所有行。例如,我希望能夠從Date1中減去10天,或者計算Date1和Date2中間的日期等。但是,將新計算的日期添加到數據框時,我無法理解類分配。樣本數據框中:在R中執行算術的日期難度很大
# Uncomment to clear your session...
# rm(list = ls(all = TRUE))
tC <- textConnection("StudyID Date1 Date2
C0031 2-May-09 12-Jan-10
C0032 7-May-09 30-Apr-10")
data <- read.table(header=TRUE, tC)
close.connection(tC)
rm(tC)
#CONVERTING TO DATES
data$Date1 <- with(data,as.Date(Date1,format="%d-%b-%y"))
data$Date2 <- with(data,as.Date(Date2,format="%d-%b-%y"))
現在,這裏是我的問題開始
class(data[1, "Date2"] - 10) # class is "Date". So far so good.
data[1, "newdate"] <- (data[1, "Date2"] - 10)
class(data[1, "newdate"]) # class is now "numeric"...
並試圖
data[1, "newdate"] <- as.Date(data[1, "Date2"] - 10)
class(data[1, "newdate"]) # doesn't help. Class still "numeric"...
只是不明白爲什麼當分配給數據
你試過'數據$ newdate < - 數據$日期1 - 10'?我認爲問題在於回收單一價值。由於列的長度必須相同,因此您的單數日期值將循環使用以匹配data.frame中的行數。我假設(我會檢查)回收帶屬性,從而將日期轉換爲它們的數字形式。 –