mydata<-structure(list(x1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.6, 0.2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0), x2 = c(0, 0, 0, 0, 0, 0.4, 0.2, 0, 0, 0, 0, 0.8, 9.2,
0.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("x1",
"x2"), class = "data.frame", row.names = c(NA, -78L))
我的数据中有2列。第一个有78行,第二个有31行。因此,当我直接从txt导入它们时,第31行之后的行越来越不适用。
我正在尝试使用acvf
中的library(itsmr)
函数查找各列的自协方差lag1。为了获得lag1
,我添加了1
作为参数。
acvf(mydata$x1, 1)
acvf(mydata$x2, 1)
当我尝试向功能中添加na.rm
时,出现此错误;
acvf(mydata $ x2,1,na.rm = T)错误acvf(mydata $ x2,1,na.rm = T): 未使用的参数(na.rm = T)
那么我该如何忽略带有na.rm
或其他解决方案的列中的NA?
答案 0 :(得分:1)
您要调用的函数没有na.rm
这样的参数,也没有任何等效参数。
要实现所需的功能,您需要修改函数提供的数据。
您可以使用子集和is.na
函数来仅保留非NA的值。
即
acvf(mydata$x2[!is.na(mydata$x2)], 1)
答案 1 :(得分:1)
该函数中没有na.rm
参数。您可以将sapply
和na.omit
包裹在列上,从而在数据框上应用该函数。
t(sapply(mydata, function(x) acvf(na.omit(x), 1)))
# [,1] [,2]
# x1 0.005023011 0.001431919
# x2 2.638501561 0.283323151