R在数据帧过滤中使用什么算法?

时间:2018-09-24 17:36:26

标签: r algorithm dataframe

例如,我有一个数据框,我想根据特定条件对其进行子集化:

df[df$gender == "woman" & df$age > 40, ]

在R中进行此过滤的算法是什么?

1 个答案:

答案 0 :(得分:1)

在执行代码df[df$gender == "woman" & df$age > 40, ]期间,会发生以下情况:

  1. df$gender已提取。
  2. 评估了df$gender == "woman",返回了boolean个向量。
  3. df$age已提取。
  4. 评估了df$age > 40,返回了boolean个向量。
  5. 在步骤2和步骤4中将逻辑副元素AND应用于向量的每个元素。
  6. df中提取在步骤5中具有TRUE标志的行。

在上述所有情况下,都会调用后端C\C++函数。例如。 []子集函数在subset.c中调用do_subset

您可以研究R函数之间的映射,它是names.c中的C后端

有关更多详细信息,请咨询Accessing R Source