尝试使用cv.lm功能时,出现上述错误。 请看我的代码

sample<-read.csv("UU2_1_lung_cancer.csv",header=TRUE,sep=",",na.string="NA")
  sample1<-sample[2:2000,3:131]
  samplex<-sample[2:50,3:131]
  y<-as.numeric(sample1[1,]) 
  y<-as.numeric(sample1[2:50,2]) 
  x1<-as.numeric(sample1[2:50,3])
  x2<-as.numeric(sample1[2:50,4])
  x11<-x1[!is.na(y)]
  x12<-x2[!is.na(y)]
  y<-y[!is.na(y)]
  fit1 <- lm(y ~ x11 + x12, data=sample)
  fit1
  x3<-as.numeric(sample1[2:50,5])
  x4<-as.numeric(sample1[2:50,6])
  x13<-x3[!is.na(y)]
  x14<-x4[!is.na(y)]
  fit2 <- lm(y ~ x11 + x12 + x13 + x14, data=sample)
  anova(fit1,fit2)
  install.packages("DAAG")
  library("DAAG")
  cv.lm(df=samplex, fit1, m=10) # 3 fold cross-validation

任何见识将不胜感激。

Example of data
ID       peak height     LCA001 LCA002  LCA003
N001786 32391.111   0.397   0.229   -0.281
N005356 32341.473   0.397   -0.655  -1.301
N002416 32215.474   -0.703  -0.214  -0.901
GS239   31949.777   0.354   0.118   0.272
N016343 31698.853   0.226   0.04    -0.006
N003255 31604.978   0.024    NA -0.534
N004358 31356.597   -0.252  -0.022  -0.407
N000122 31168.09    -0.487  -0.533  -0.134
GS10564 31106.103   -0.156  -0.141  -1.17
GS17987 31043.876    NA     0.253   0.553
N003674 30876.207   0.109   0.093   0.07

请参阅上面的数据示例

===============>>#1 票数:1 已采纳

首先,您使用lm(..)不正确,或者至少以非常不常规的方式。 指定data=sample参数的目的是使公式使用对sample列的引用。 通常,在公式参考中使用独立数据是非常不好的做法

所以试试这个:

## not tested...
sample <- read.csv(...)
colnames(sample)[2:6] <- c("y","x1","x2","x3","x4")
fit1 <- lm(y~x1+x2, data=sample[2:50,],na.action=na.omit)
library(DAAG)
cv.lm(df=na.omit(sample[2:50,]),fit1,m=10)

这将为2:6列提供适当的名称,然后在公式中使用这些名称。 参数na.action=na.omit告诉lm(...)函数排除任何相关列中具有NA值的所有行。 这实际上是默认设置,因此在这种情况下不需要它,但为清楚起见将其包括在内。

最后, cv.lm(...)使用它的第二个参数来查找公式定义,因此在您的代码中:

cv.lm(df=samplex, fit1, m=10)

等效于:

cv.lm(df=samplex,y~x11+x12,m=10)

由于samplex中没有(可能)没有名为x11x12samplex ,并且由于您在外部定义了这些向量,因此cv.lm(...)会引发您所得到的错误。

  ask by user3424320 translate from so

未解决问题?本站智能推荐:

2回复

R中可变长度的模型框架中的错误

今天是我使用R的第一天,遇到一个无法解决的问题。 我想对数据使用决策树,并且正在使用以下命令: 我得到的错误是- 我看着不适用的领域,没有 而且我还检查了各个列的长度,它们都是相同的。 谁能告诉我为什么会收到此错误?
2回复

如果b = 0,则对R中具有可变长度的向量使用

我有一个长度可变的变量b。 例如。 有可能 我有一个if条件,说明如果 每当b不为0或长度大于1时,我都会收到警告: 基本上我想拥有的是:如果b = 0,则执行某些操作,否则执行其他操作,而与向量的长度无关。 我应该如何正确地做到这一点?
1回复

R中具有可变长度数字变量的散点图

如果两个向量都很大(每个向量有1000个变量)并且一个向量具有多个NA值,我该如何使用“ plot()”函数在R中绘制两个数值向量的散点图?
3回复

将可变长度列表转换为R中的矩阵

如果我有一个可变长度的矢量列表: 我如何将其转换为数据框/逻辑矩阵,列表元素表示为列? 即数据框如: 一些数据:
1回复

在R中绘制可变长度向量的列表

我有一个列表,其中包含多个不同长度的向量(总计80个)。 在x轴上,我想要这些向量的名称。 我想在y轴上绘制与每个向量相对应的值。 我如何在R中做到这一点?
1回复

修改R中的可变长度字符串

我正在使用其中第一列(“第一”)包含字符串(这是一个子集)的数据表: 我试图使最终格式包含6个元素,并在不同位置添加特定元素。 我使用以下命令从头到尾进行操作:向所有不包含“ r”的字符串中添加“ s”: 然后执行以下命令,以在第一个元素之后添加数字“ 0”(仅当元素少于5
1回复

R:可变长度不同

我想对差分自变量和一个非差分变量进行差分因变量回归。 我在R中尝试了以下几行: 如果没有ts.intersect()命令,则会弹出一条错误消息,提示变量长度不同(针对变量mt)。 这是有道理的,因为它没有区别。 我的问题是:i)这是处理不同可变长度的正确方法吗? ii)有没有更有
1回复

如何在R中的列表内访问可变长度列表

当我在数据帧的列上调用strsplit()时,根据strsplit()的结果,有时会由于拆分而​​得到一个或两个“子列表”。 例如, 我知道我可以使用'[]'和'[[]]'访问split的各个列表,这些告诉我这些子列表的内容,所以我认为我理解这一点。 并且我可以通过split [[2
1回复

R中的飞跃包返回“可变长度不同”错误

我使用的是leaps包中的R运行regsubsets : 并得到一条错误消息: (请注意,无论我是否手动复制预测变量列表都没有区别)。 我刚刚尝试了态度数据集,例如: 并得到相同的错误。 我的数据集是相似的,但是具有更多的变量,并且in_var是1-3分(在其他地
1回复

R中的可变长度不同(使用lme4进行线性建模)

我的输入文件: 有成千上万的附加列,每个列都有标题和数字列表,长度与“ gene1”列相同。 我的代码: 结构体: 我的错误讯息: model.frame.default中的错误(data = mydata,drop.unused.levels = TR