[英]How to Melt single column in R
如何將單列從T1熔化到T2。
T1 Mar-17 T2 328 Mar-17 328 29.57 Mar-17 29.57 38.483 Mar-17 38.483 31.26 Mar-17 31.26 37.3 Mar-17 37.3 60.026 Mar-17 60.026 47.059 Mar-17 47.059 40.215 Mar-17 40.215 51.79 Mar-17 51.79 45.284 Mar-17 45.284 41.271 Mar-17 41.271 42.411 Mar-17 42.411
T3 Mar-17 Apr-17 T4 328 396 Mar-17 328 29.57 216.57 Mar-17 29.57 38.483 116.483 Mar-17 38.483 31.26 168.26 Mar-17 31.26 37.3 128.3 Mar-17 37.3 60.026 82.026 Mar-17 60.026 47.059 113.059 Mar-17 47.059 40.215 165.215 Mar-17 40.215 51.79 80.79 Mar-17 51.79 45.284 185.284 Mar-17 45.284 41.271 183.271 Mar-17 41.271 42.411 204.411 Mar-17 42.411 Apr-17 396 Apr-17 216.57 Apr-17 116.483 Apr-17 168.26 Apr-17 128.3 Apr-17 82.026 Apr-17 113.059 Apr-17 165.215 Apr-17 80.79 Apr-17 185.284 Apr-17 183.271 Apr-17 204.411
當我使用堆棧
T2 <- stack(T1)
它給出錯誤信息
rep.int(名稱(x),長度(x))中的錯誤:無效的“時間”值
當我沒有列名(而是將Mar-17
和Apr-17
作為第一次觀察結果)時,我能夠重現您的錯誤,因此我假設這就是您的數據的結構。 如果Mar-17
和Apr-17
是您的列名,則stack()
應該可以工作。
在這種情況下,可以將變量名設置為第一行中的值,然后對除第一行以外的所有內容使用stack()
:
names(T1) <- T1[1,]
T2 <- stack(T1[-1, , drop = F])
head(T2)
# values ind
#1 328 Mar-17
#2 29.57 Mar-17
#3 38.483 Mar-17
#4 31.26 Mar-17
#5 37.3 Mar-17
#6 60.026 Mar-17
names(T3) <- T3[1,]
T4 <- stack(T3[-1,])
head(T4)
# values ind
#1 328 Mar-17
#2 29.57 Mar-17
#3 38.483 Mar-17
#4 31.26 Mar-17
#5 37.3 Mar-17
#6 60.026 Mar-17
數據:
T1 <- structure(list(c("Mar-17", "328", "29.57", "38.483", "31.26",
"37.3", "60.026", "47.059", "40.215", "51.79", "45.284", "41.271",
"42.411")), class = "data.frame", row.names = c(NA, -13L))
T3 <- structure(list(c("Mar-17", "328", "29.57", "38.483", "31.26",
"37.3", "60.026", "47.059", "40.215", "51.79", "45.284", "41.271",
"42.411"), c("Apr-17", "396", "216.57", "116.483", "168.26",
"128.3", "82.026", "113.059", "165.215", "80.79", "185.284",
"183.271", "204.411")), row.names = c(NA, -13L), class = "data.frame")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.