我有一個 xts 檔案格式,讀取時沒有索引列的名稱,見下文。我如何為其指定名稱?理想情況下,我想在后續階段使用日期時間欄位進行繪圖。謝謝。
Elapsed Time Total Inflow Total Evap Surface Infil
2021-04-30 10:02:00 0.033 0 0.125 0
2021-04-30 10:04:00 0.067 0 0.125 0
2021-04-30 10:06:00 0.100 0 0.125 0
2021-04-30 10:08:00 0.133 0 0.125 0
2021-04-30 10:10:00 0.167 0 0.125 0
2021-04-30 10:12:00 0.200 0 0.125 0
uj5u.com熱心網友回復:
我們假設問題是詢問如何在最后的 Note 中繪制 xts 物件,例如 x。
zoo 和 xts 物件有許多繪圖函式(每個 xts 物件也是一個 zoo 物件),因此沒有必要將其轉換為資料框(盡管在下面的最后一個示例中我們展示了這一點。) 每個的所有設施使用它時可以使用繪圖系統。下面還顯示了如何在每種情況下指定 x 標簽。
library(xts) # this also pulls in zoo
# classic graphics
plot(as.zoo(x), xlab = "Time")
# lattice graphics
library(lattice)
xyplot(x, xlab = "Time")
## ggplot2 graphics
library(ggplot2)
autoplot(x) xlab("Time")
# convert to data frame and then use matplot
d <- fortify.zoo(x)
matplot(d[[1]], d[-1], xlab = "Time")
筆記
Lines <- " Elapsed Time Total Inflow Total Evap Surface Infil
2021-04-30 10:02:00 0.033 0 0.125 0
2021-04-30 10:04:00 0.067 0 0.125 0
2021-04-30 10:06:00 0.100 0 0.125 0
2021-04-30 10:08:00 0.133 0 0.125 0
2021-04-30 10:10:00 0.167 0 0.125 0
2021-04-30 10:12:00 0.200 0 0.125 0"
# split into lines, trim whitespace off ends, replace 2 spaces w comma
L <- Lines |>
textConnection() |>
readLines() |>
trimws() |>
gsub(pattern = " ", replacement = ",")
z <- read.csv.zoo(text = L, index = 0, tz = "", check.names = FALSE)
x <- as.xts(z)
uj5u.com熱心網友回復:
一種建議是使用可以處理xts資料的繪圖函式。沒有多少功能可以做到這一點。
另一種選擇是將索引作為資料框中的單獨列而不是xts物件。
library(xts)
data <- data.frame(index = index(sample.xts), coredata(sample.xts))
data
# index Open High Low Close
#1 2007-01-02 50.03978 50.11778 49.95041 50.11778
#2 2007-01-03 50.23050 50.42188 50.23050 50.39767
#3 2007-01-04 50.42096 50.42096 50.26414 50.33236
#4 2007-01-05 50.37347 50.37347 50.22103 50.33459
#5 2007-01-06 50.24433 50.24433 50.11121 50.18112
#6 2007-01-07 50.13211 50.21561 49.99185 49.99185
#...
#...
資料
data(sample_matrix)
sample.xts <- as.xts(sample_matrix, descr='my new xts object')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/393461.html
