我在 R 中有兩個變數,例如:
from <- as.POSIXct('2022-06-25 00:00:00', format="%Y-%m-%d %H:%M:%S",tz='UTC')
和
to <- as.POSIXct('2022-06-25 14:00:00', format="%Y-%m-%d %H:%M:%S",tz='UTC')
我要展示!無論是日期時間格式,例如在資料框或我在 R studio 中的變數環境中,還是在將此值匯出為 csv 或 xlsx 時。第二個to總是顯示正確,因為它不是在午夜,但第一個from總是顯示為2022-06-25, 所以作為日期,而不是日期時間。計算是正確的,所以它只是一個顯示問題。如何強制 R 顯示這個值,包括時間?最小的例子:
from <- as.POSIXct('2022-06-25 00:00:00', format="%Y-%m-%d %H:%M:%S",tz='UTC')
to <- as.POSIXct('2022-06-25 14:00:00', format="%Y-%m-%d %H:%M:%S",tz='UTC')
data <- data.frame(x1 = 1:5)
data <- cbind(to = to, data)
data <- cbind(from = from, data)
data
view(data)
uj5u.com熱心網友回復:
我們可以format用來強制POSIXct or POSIXt向量的任意顯示格式:
format(data,format="%Y-%m%-%d %T")
from to x1
1 2022-06-25 00:00:00 2022-06-25 14:00:00 1
2 2022-06-25 00:00:00 2022-06-25 14:00:00 2
3 2022-06-25 00:00:00 2022-06-25 14:00:00 3
4 2022-06-25 00:00:00 2022-06-25 14:00:00 4
5 2022-06-25 00:00:00 2022-06-25 14:00:00 5
不幸的是,AFAICS 沒有默認方法可以做到這一點,但您可以撰寫一個自定義列印函式來執行此操作:
print_with_time <- function(df, ...)
{
df <- data
timeCols <- which(sapply(df,inherits,"POSIXt"))
for(i in timeCols)
{
df[[i]] <- format(df[[i]],format="%Y-%m-%d %T")
}
base::print.data.frame(df, ...)
}
> print_with_time(data)
from to x1
1 2022-06-25 00:00:00 2022-06-25 14:00:00 1
2 2022-06-25 00:00:00 2022-06-25 14:00:00 2
3 2022-06-25 00:00:00 2022-06-25 14:00:00 3
4 2022-06-25 00:00:00 2022-06-25 14:00:00 4
5 2022-06-25 00:00:00 2022-06-25 14:00:00 5
現在,如果您真的希望通過呼叫printa來實作這一點,data.frame您可以print.data.frame使用此函式覆寫默認的 S3 方法調度目標。但請注意,這可能會在其他地方導致意想不到的結果:
print.data.frame <- print_with_time
> print(data)
from to x1
1 2022-06-25 00:00:00 2022-06-25 14:00:00 1
2 2022-06-25 00:00:00 2022-06-25 14:00:00 2
3 2022-06-25 00:00:00 2022-06-25 14:00:00 3
4 2022-06-25 00:00:00 2022-06-25 14:00:00 4
5 2022-06-25 00:00:00 2022-06-25 14:00:00 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529914.html
標籤:r约会时间
上一篇:是否可以將資料框中的數字四舍五入到最接近的整數10?
下一篇:從R中的行總數計算百分比
