Я пытаюсь использовать 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"))