使用NP包进行带宽选择

时间:2012-04-19 12:00:31

标签: r vector regression

R新手并且遇到一个非常简单的任务问题!我已经在R中读了几列.csv数据,其内容包含自然数加零的变量,并且缺少值。在尝试使用非参数化包之后,我有两个问题:首先,如果我使用简单命令bw=npregbw(ydat=y, xdat=x, na.omit),其中x和y是列向量,我得到的错误是“回归数据和响应数据的数量不符合”。为什么我得到这个,因为我在每个向量中有相同数量的元素?

其次,我想调用已排序的数据并使用命令bw=npregbw(ydat=y, xdat=ordered(x))告诉npregbw。当我这样做时,我得到的错误是x必须是sort.list的原子。但是x怎么不是原子的,它只是一个具有自然数和NA的矢量?

非常感谢任何澄清!

1 个答案:

答案 0 :(得分:1)

1)你可能在y和x中有不同数量的NA。

2)无法确定这一点,因为没有例子。如果是以下类型:

 x <- c(3,4,NA,2)

然后ordered(x)应该可以正常工作。请提供您的案例。

编辑:你当然试过bw=npregbw(ydat=y, xdat=x)ordered()使您的向量成为有序因子(请参阅?ordered),这不是原子向量(请参阅2.1.1 link?factor

EDIT2:问题在于数据的子集化方式。注意各种子集方式的差异。 data $ x和data [,i](其中i =列x的列号)给出向量,而data [c(“x”)]和data [i]给出数据帧。函数期望向量,除非它们调用data =(您的数据)。在这种情况下,他们使用列名