我的目標是將我的季度時間序列資料轉換為表格格式,而無需在列上標注年份和季度。我也不想要序列號。
我在這里有資料的輸入:
dput(rainfall)
structure(c(26.3333333333333, 129.5, 250.8, 59.5666666666667,
29.0333333333333, 157.8, 138.1, 68.6, 55.3, 196.2, 118.033333333333,
120.733333333333, 31.0333333333333, 166.5, 48.2666666666667,
91.4333333333333, 24.3333333333333, 113.933333333333, 98.3666666666667,
69, 50.2, 171.2, 142.7, 88.4, 26.7, 172.433333333333, 251.733333333333,
58.1666666666667, 26.1, 125.433333333333, 273.5, 91.7, 22.5666666666667,
158, 156.466666666667, 48.5333333333333, 46.3333333333333, 126.4,
92.9, 37.1333333333333, 2.36666666666667, 184.233333333333, 94.6666666666667,
50.9333333333333, 30.9333333333333, 177.566666666667, 184.266666666667,
60.7333333333333, 39.3333333333333, 150.566666666667, 299.7,
68.0666666666667, 49.0666666666667, 168.533333333333, 133.5,
59.9, 53.4666666666667, 141.6, 281.4, 75.3333333333333, 41.9666666666667,
200.8, 176.233333333333, 94.5666666666667, 30.2333333333333,
139.333333333333, 207.4, 45.8, 6.93333333333333, 146, 163.166666666667,
67.2, 20.0333333333333, 201.133333333333, 201.8, 48.1666666666667,
18.9666666666667, 138.6, 169.733333333333, 64.1666666666667,
79.5, 131.866666666667, 159.6, 70.4, 21.2, 78.4333333333333,
163.833333333333, 96, 48.5, 177, 196.333333333333, 62.1333333333333,
37.6333333333333, 119.366666666667, 243.666666666667, 49.4333333333333,
35.3666666666667, 161.1, 121.166666666667, 111, 3.6, 98.3333333333333,
88.7333333333333, 74.1, 63.8666666666667, 187.7, 183.566666666667,
115.866666666667, 36.2333333333333, 126.066666666667, 240.833333333333,
35.4333333333333, 27.0666666666667, 192.2, 186.366666666667,
17.4833333333333, 15.5166666666667, 166.633333333333, 238.65,
77.6833333333333, 38.2833333333333, 125.983333333333, 188.916666666667,
94.1666666666667, 20.8666666666667, 174.916666666667, 110.8,
66.6, 42.6333333333333, 206.25, 161.5, 56.5333333333333, 22.6666666666667,
106.116666666667, 173.166666666667, 44.3666666666667, 5.31666666666667,
193.406666666667, 177.266666666667, 71.2833333333333, 33.2833333333333,
168.6, 221.366666666667, 41.2666666666667, 22.8, 180.866666666667,
118.7, 49.4833333333333, 39.95, 170.533333333333, 260.783333333333,
170.833333333333, 68.9666666666667, 157.833333333333, 250.733333333333,
90.1166666666667, 46.6833333333333, 149.356666666667, 175.65,
68.3, 54.6833333333333, 166.65, 131.183333333333, 80.6833333333333
), .Dim = c(164L, 1L), .Dimnames = list(NULL, "rainfall"), .Tsp = c(1973,
2013.75, 4), class = "ts")
這是我使用的代碼:
library(zoo)
new_data <- data.frame(yq = yearqtr(index(rainfall)), val = rainfall)
這是輸出:
yq rainfall
1 1973 Q1 26.333333
2 1973 Q2 129.500000
3 1973 Q3 250.800000
4 1973 Q4 59.566667
5 1974 Q1 29.033333
6 1974 Q2 157.800000
7 1974 Q3 138.100000
8 1974 Q4 68.600000
9 1975 Q1 55.300000
10 1975 Q2 196.200000
我不想要季度列上的序列號和標簽。
期待聽到任何可能提供幫助的人的來信。
uj5u.com熱心網友回復:
如果沒有顯示它是什么的問題,很難說出你想要什么,但也許你想要這個給出一個動物園物件,如下所示:
as.zoo(rainfall)
## rainfall
## 1973 Q1 26.333333
## 1973 Q2 129.500000
## 1973 Q3 250.800000
## 1973 Q4 59.566667
...snip...
或者就 new_data 而言,這給出了相同的輸出。
read.zoo(new_data, drop = FALSE)
或者您可能想要其中一個以年/季度作為行名的資料框。
as.data.frame(as.zoo(rainfall))
## rainfall
## 1973 Q1 26.333333
## 1973 Q2 129.500000
## 1973 Q3 250.800000
## 1973 Q4 59.566667
...snip...
或者這給出了相同的輸出,但在 new_data 方面:
as.data.frame(read.zoo(new_data, drop = FALSE))
“序列號”的描述不清楚,輸出顯示你不想要什么而不是你想要什么,所以我們真的不知道它是什么,但也許這些會有所幫助:
c(cycle(rainfall)) # 1, 2, 3, etc. (the quarter number)
paste0("Q", cycle(rainfall)) # Q1, Q2, etc.
quarters(time(as.zoo(rainfall))) # same
format(time(as.zoo(rainfall)), "Q%q") # same
如果您的意思是如何在沒有行名的情況下顯示 new_data :
write.table(new_data, row.names = FALSE)
或沒有行名且沒有年/季度列:
write.table(new_data[, 2, drop = FALSE], row.names = FALSE)
或就降雨而言
write.table(rainfall, row.names = FALSE)
請注意,這些以 new_data 的形式給出一列資料框和矩陣
new_data[, 2, drop = FALSE] # data frame
cbind(rainfall = new_data[[2]]) # 1 column matrix
或就降雨而言:
as.data.frame(rainfall) # data frame
rbind(rainfall) # 1 column matrix
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486551.html
