[英]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.