6
วิธีการป้องกัน ifelse () จากการเปลี่ยนวัตถุวันที่เป็นวัตถุที่เป็นตัวเลข
ฉันใช้ฟังก์ชันนี้ifelse()เพื่อจัดการกับเวกเตอร์วันที่ ฉันคาดหวังว่าผลการเรียนจะดีDateมากและรู้สึกประหลาดใจที่ได้รับnumericเวกเตอร์แทน นี่คือตัวอย่าง: dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05')) dates <- ifelse(dates == '2011-01-01', dates - 1, dates) str(dates) สิ่งนี้น่าประหลาดใจอย่างยิ่งเพราะการดำเนินการข้ามเวกเตอร์ทั้งหมดส่งคืนDateวัตถุ dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05')) dates <- dates - 1 str(dates) ฉันควรจะใช้ฟังก์ชั่นอื่นเพื่อทำงานกับDateเวกเตอร์หรือไม่? ถ้าเป็นเช่นนั้นฟังก์ชั่นอะไร? ถ้าไม่ฉันifelseจะบังคับให้ส่งคืนเวกเตอร์ประเภทเดียวกันกับอินพุตได้อย่างไร หน้าความช่วยเหลือสำหรับifelseระบุว่านี่เป็นคุณลักษณะไม่ใช่ข้อผิดพลาด แต่ฉันยังคงดิ้นรนเพื่อหาคำอธิบายสำหรับสิ่งที่ฉันพบว่าเป็นพฤติกรรมที่น่าแปลกใจ
161
r
datetime
if-statement