Tag: 子集

过滤一个data.frame

让我们假设我有像数据框 expr_value cell_type 1 5.345618 bj fibroblast 2 5.195871 bj fibroblast 3 5.247274 bj fibroblast 4 5.929771 hesc 5 5.873096 hesc 6 5.665857 hesc 7 6.791656 hips 8 7.133673 hips 9 7.574058 hips 10 7.208041 hips 11 7.402100 hips 12 7.167792 hips 13 7.156971 hips 14 7.197543 hips 15 7.035404 hips 16 7.269474 hips 17 […]

为什么“比'subset`好?

当我需要过滤data.frame,即提取符合某些条件的行时,我更愿意使用subset函数: subset(airquality, Month == 8 & Temp > 90) 而不是[function: airquality[airquality$Month == 8 & airquality$Temp > 90, ] 我的偏好主要有两个原因: 我发现代码从左到右读得更好。 即使对R一无所知的人也可以知道上面的subset声明在做什么。 因为列可以被称为selectexpression式中的variables,所以我可以节省一些击键。 在我上面的例子中,我只需要用subset键入一次airquality ,而用[ 。 所以我活得很开心,到处都是使用subset ,因为它更短,读起来更好,甚至向我的R编码者提倡它的美。 但是昨天我的世界分崩离析了。 在阅读subset文档时,我注意到这个部分: 警告 这是一个交互式使用的便利function。 对于编程,最好使用标准的子集函数,特别是参数子集的非标准评估可能会有意想不到的后果。 有人能帮助澄清作者的意思吗? 首先,“ 交互使用 ”是指什么? 我知道什么是交互式会话,而不是脚本在BATCH模式下运行,但是我不知道应该做什么区别。 那么能否解释“ 论证子集的非标准评估 ”,为什么它是危险的,也许可以举个例子呢?