r语言 - 用于循环遍历 tibble 的行正常运行,但为 i 生成值



我正在尝试在 R 中编写一个 for 循环,该循环基于 col 3 中的值生成一个数字范围,并检查 col 2 中的值是否在该范围内。对于积极的点击,我希望它打印出整行

我认为我的电流 for 循环运行正常(没有积极的结果(,但它在我的工作区中产生了奇怪的值

这是我当前的循环:

for(i in 1:nrow(df)) {
    low <- (df[[i, 3]] - 11)
    high <- (df[[i, 3]] + 11)
    if(df[[i, 2]] < high && df[[i, 2]] > low) {
    print(df[[i,]])
   }
}

数据的简化数据框如下所示

df = data.frame(Gene = c("ABCA7", "AP1B1", "CENPE", "COPA", "COPA", "COPA", "ZNF592"), 
     Starting.Position = c(273, 188, 1541, 1207, 1207, 545, 1052), 
     Mutation = c(1293, 230, 2562, 792,792,792, 186))

当我运行这个循环时,不会输出任何内容——我认为这是准确的---但是在我的工作区中创建了三个对象:"high = 197,low = 175,i = 6L"。不知道为什么会发生这种情况,这让我很困扰,想知道为什么,我无法在我的代码中找到任何错误。这些值是在数据框的最后一行上运行的循环。

谢谢,我对使用 R 比较陌生。

正如@MrFlick所说,这是因为您在代码中创建这些变量。当您运行代码时,它会生成一个存储在工作区(即内存(中的输出,但由于代码的结果是空值,因此不会将任何内容输出到终端中。

变量在此处创建:

low <- (df[[i, 3]] - 11)
high <- (df[[i, 3]] + 11)

相关内容

最新更新