R NextMethod(“[<;-”)中出错:下标超出范围
我在R中加载了一个zoo类数据集,我试图为循环运行一个R NextMethod(“[<;-”)中出错:下标超出范围,r,R,我在R中加载了一个zoo类数据集,我试图为循环运行一个,但我一直遇到错误 下一个方法出错(“[您的意思是: for (i in 1:NROW(data)) { data[i, "dummy"] = i } 但是,无论您在for循环中尝试做什么,使用矢量化解决方案可能会更容易,例如使用ifelse您的意思是: for (i in 1:NROW(data)) { data[i, "dummy"] = i } 然而,无论您在for循环中尝试做什么,使用矢量化解决方案可能会更容易,例
,但我一直遇到错误
下一个方法出错(“[您的意思是:
for (i in 1:NROW(data)) {
data[i, "dummy"] = i
}
但是,无论您在for循环中尝试做什么,使用矢量化解决方案可能会更容易,例如使用ifelse
您的意思是:
for (i in 1:NROW(data)) {
data[i, "dummy"] = i
}
然而,无论您在for循环中尝试做什么,使用矢量化解决方案可能会更容易,例如使用ifelse
为什么伪变量在for循环中称为dummyvariable
,在显示中称为dummy
,在dput
中完全不存在?还有,您为什么要做length(数据)
(48)而不是NROW(数据)
(6)?您在循环中实际想做什么?很抱歉进行了编辑。我只是尝试循环“虚拟”中的每个元素“变量并放置一个值,该值将根据条件if语句而变化。我删除了if语句,因为它们不是问题所在。这是代码的startobs+I部分。是否还要循环遍历数据集中的每个元素/观察值?我想您只需要对(I in 1:NROW(data)){data[I,“dummy”]=I}执行
。如果data[,“dummy”]=1:NROW(data),则可以更轻松、更高效地完成此操作
,但我知道这只是一个玩具示例。然而,无论您尝试做什么,使用矢量化解决方案可能会比使用for循环做得更好。也许您可以分享您的目标是什么?但这不仅仅是缺少变量-还有全新的变量obs
,日期
,以及(最重要的是)dummy
。重量在完全不同的刻度上(~52000而不是~100)。如果dput
和问题的其余部分之间唯一共享的东西是单个列的名称,那么为什么要使用dput
?为什么在for循环中称为dummyvariable
,在显示中称为dummy
,在dput
中完全不存在?还有,为什么要执行length(数据)
(48)而不是NROW(数据)
(6)?您在循环中实际想做什么?抱歉进行了编辑。我只是尝试循环“虚拟”中的每个元素变量并放置一个值,该值将根据条件if语句的不同而变化。我删除了if语句,因为它们不是问题所在。这是代码的startobs+I部分。是否仍要循环遍历数据集中的每个元素/观察值?我想您只需要对(I in 1:NROW(data)){data[I,“dummy”]=I}执行
。如果data[,“dummy”]=1:NROW(data),则可以更轻松、更高效地完成此操作
,但我知道这只是一个玩具示例。然而,无论您尝试做什么,使用矢量化解决方案可能会比使用for循环做得更好。也许您可以分享您的目标是什么?但这不仅仅是缺少变量-还有全新的变量obs
,日期
,以及(最重要的是)dummy
。权重是在一个完全不同的尺度上(~52000而不是~100)。如果dput
和问题的其余部分之间唯一共享的东西是单个列的名称,那么为什么要使用dput
?@Arun:请参阅上面对问题的评论(我还注意到这与1:nrow(数据)相同)
。OP注意到这只是一个玩具示例,其他一些计算正在进行for循环(因此我提供了这个示例来解释玩具示例的工作原理)。我在评论和我的回答中都注意到,矢量化解决方案可能更优。@Arun:请参阅上面问题的评论(我还注意到这与1:nrow(data)
相同。OP注意到这只是一个玩具示例,其他一些计算正在进行中(因此我提供了这个来解释玩具示例是如何工作的)。我在评论和回答中都注意到,矢量化解决方案可能更优越。
>dput(head(data))
structure(c(100, 101.01, 110.75, 111.24, 104.96, 104.95, 104.06,
109.08, 113.48, 111.6, 108, 107.95, 95.96, 100.5, 109.05, 103.57,
103.88, 104.66, 100.34, 108.31, 109.4, 104.87, 106, 107.91, 22351900,
11428600, 9137200, 7631300, 4598900, 3551000, 100.34, 108.31,
109.4, 104.87, 106, 107.91, NA, NA, NA, NA, NA, NA), .Dim = 6:7, .Dimnames = list(
NULL, c("weight", "height", "BMI", "Age", "Age2", "Intr",
"Chol")), index = structure(c(12649, 12650, 12653, 12654,
12655, 12656), class = "Date"), class = "zoo")
for (i in 1:NROW(data)) {
data[i, "dummy"] = i
}