簡體   English   中英

在 xts 對象中將字符轉換為數字

[英]Convert character to numeric in xts object

我的願望是將以下 xts 對象中的所有數字轉換為數字。

Morover,如果可能的話,用同一列中的前一個數字替換 NA

library(xts)
x <- structure(c("1176.67", "1175.37", "1196.10", "1182.90", "1200.30", 
"1183.20", "170.0674", "170.0586", NA, "170.1376", "170.1651", 
"170.1844", "252.10", "252.07", "252.07", "252.23", "252.34", 
"252.40", "616.09", "618.49", "620.44", "624.61", "626.66", "627.92", 
"1.44730", "1.44430", NA, "1.43710", "1.44730", "1.44120", "5238.815", 
"5238.458", "5256.423", "5261.352", "5235.514", "5182.277", "5669.918", 
"5673.797", "5668.293", "5677.272", "5613.539", "5608.027", "399.106", 
"398.800", "399.411", "402.521", "400.797", "401.521"), class = c("xts", 
"zoo"), .indexCLASS = c("POSIXct", "POSIXt"), tclass = c("POSIXct", 
"POSIXt"), .indexTZ = "GMT", tzone = "GMT", index = structure(c(1419292800, 
1419379200, 1419552000, 1419811200, 1419897600, 1419984000),
tzone = "GMT", tclass = c("POSIXct", "POSIXt")), .Dim = c(6L, 8L),
.Dimnames = list(NULL, c("GC1 COMDTY", "IBOXXMJA", "LT01TRUU",
"LT11TRUU", "MEDLCCU", "NDDLUS", "NDDUE15", "NDUEEGF")))

您可以將storage.mode設置為numeric。

storage.mode(x) <- "numeric"

但我鼓勵您首先查找數據的根本原因/來源。 如果對象中的某些值不能表示為numeric,則將storage.mode設置為numeric可能具有破壞性(如果無法轉換任何值,R將拋出警告)。

轉換為數字后,您可以使用na.locf用前一個值填充缺失值。

x <- na.locf(x)

你可以試試這個:

x1 <- apply(x,2,as.numeric)

下面的鏈接提供了一個簡單的解決方案,使用

storage.mode(data) <- "numeric"

xts 將數據從 chr 轉換為數字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM