我正在尝试在 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)