例如,我有一个数据框,我想根据特定条件对其进行子集化:
df[df$gender == "woman" & df$age > 40, ]
R 中这种过滤背后的算法是什么?
最佳答案
在执行代码 df[df$gender == "woman"& df$age > 40, ]
期间,会发生以下情况:
df$gender
提取。df$gender == "woman"
评估,返回boolean
向量。df$age
提取。df$age > 40
评估,boolean
向量返回。- 逻辑元素
AND
应用于第 2 步和第 4 步中向量的每个元素。 - 从
df
中提取在步骤 5 中具有TRUE
标志的行。
在所有上述情况下,调用后端 C\C++
函数。例如。 []
子集函数调用 subset.c 中的 do_subset
.
您可以在 names.c 中研究 R 函数与它的 C
后端之间的映射。
详情可以咨询Accessing R Source
关于r - R在数据帧过滤中使用的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52484580/