функция splinefun в R - PullRequest
       10

функция splinefun в R

0 голосов
/ 24 марта 2020

Я пытаюсь использовать splinefun в R для интерполяции некоторых NA значений. У меня есть data frame с 6 columns, где 6-й столбец date. Всякий раз, когда я пытаюсь выполнить код, я получаю следующую ошибку: Error in colMeans(a) : 'x' must be numeric, хотя я преобразовал все columns, кроме 6-го, в numeric. Вот код:

library(stats)
library(readxl)

a = read_excel("test.xlsx")

a$"1265_4sel" <- as.numeric(as.character(a$"1265_4sel"))
a$"1266_4sel" <- as.numeric(as.character(a$"1266_4sel"))
a$"4210_7sel" <- as.numeric(as.character(a$"4210_7sel"))
a$"4262_7sel" <- as.numeric(as.character(a$"4262_7sel"))
a$"4780_7sel" <- as.numeric(as.character(a$"4780_7sel"))

a$DATE <- as.Date(a$DATE, format = "%Y-%m-%d")

View(a)
str(a)

df = splinefun(a$DATE, colMeans(a), method =  "fmm")
plot(df)

Ниже вы можете найти воспроизводимый пример:

structure(list(`1265_4sel` = c("NA", "-2.8042999999999998E-2", 
"NA", "NA", "-5.4059000000000003E-2", "-6.4116000000000006E-2", 
"NA", "NA", "NA"), `1266_4sel` = c("NA", "3.6759E-2", "NA", "NA", 
"-7.7029999999999998E-3", "1.9910000000000001E-3", "NA", "NA", 
"5.666E-3"), `4210_7sel` = c(-0.00029, 0.021711, 0.011415, 0.017915, 
0.022589, 0.000518, -0.015391, -0.041115, 0.041856), `4262_7sel` = c("NA", 
"0.175562", "-1.4192E-2", "-4.4636000000000002E-2", "0.10369399999999999", 
"0.102925", "9.9599999999999994E-2", "NA", "-1.1667E-2"), `4780_7sel` = c(-0.104711, 
0.090285, -0.077229, -0.051964, 0.059891, 0.092077, 0.030139, 
-0.008725, 0.072749), DATE = structure(c(1480636800, 1481328000, 
1482019200, 1482710400, 1483228800, 1483920000, 1484611200, 1485302400, 
1485993600), class = c("POSIXct", "POSIXt"), tzone = "UTC")), row.names = c(NA, 
-9L), class = c("tbl_df", "tbl", "data.frame"))
...