簡體   English   中英

R:$運算符對原子向量無效POSIX錯誤

[英]R: $ operator invalid for atomic vectors Error with POSIX

我可能會在這里遺漏一些非常明顯的東西,您能幫我嗎?

當我將日期對象發送到seLocalize()函數時,它按預期返回以下代碼(我發送了18-mar-18並返回了13-mar-18)

seLocalize <- function(dataTeste) {
    data <- as.POSIXlt(dataTeste) 
    if(data$wday != 0) {
        data <- data-86400
    }
    print(data)
}

盡管對於遵循這段代碼,相同的測試返回“錯誤:$運算符對原子向量無效”

seLocalize <- function(dataTeste) {
    data <- as.POSIXlt(dataTeste)
    while(data$wday != 0) {
        data <- data-86400
    }
    print(data)
}

為什么?

我很難相信這是一個正確的問題描述,因為該日期的格式無法識別。

> seLocalize <- function(dataTeste) {
+     data <- as.POSIXlt(dataTeste)
+     while(data$wday != 0) {
+         data <- data-86400
+     }
+     print(data)
+ }
> seLocalize("13-mar-18")
Error in as.POSIXlt.character(dataTeste) : 
  character string is not in a standard unambiguous format

因此,我嘗試為as.POSIXlt發送一個我認為是可能的修訂函數(因為有些晦澀的強制性錯誤)了一個正確的日期值:

 seLocalize2 <- function(dataTeste) {
     data <- as.POSIXlt(dataTeste)
     while(data$wday != 0) {
         data <- as.POSIXlt(data-86400)  # coerce back to POSIXlt
         }
     print(data)
     }
> seLocalize2("2018-03-25")
[1] "2018-03-25 PDT"
> seLocalize2("2018-03-29")
[1] "2018-03-25 PDT"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM