dplyr的select helper函数如何()与复制不同?

时间:2016-05-11 19:40:45

标签: r dataframe dplyr

的用例是什么?
def filters():
            for LogLine in Log:
                flag = True
                for key,ConfLine in Conf.items():
                    for patterns in ConfLine:
                        print patterns
                        if re.match((DateString + patterns), LogLine):
                            flag = False
                            break 

                    if(flag == False):
                        break 

                if(flag):

                print LogLine

与...相反只是复制data.frame?

2 个答案:

答案 0 :(得分:5)

everything中查找对?select的引用,它们有一个用于重新排序列的示例:

# Reorder variables: keep the variable "Species" in the front
select(iris, Species, everything())

在这种情况下,Species列将移至第一列,保留所有列,并且不会复制任何列。

也存在其他可能的用例。

答案 1 :(得分:1)

另一个用例示例:

<div *ngFor="let test of GetAllMobile">
    <div *ngFor="let x of test.results">
  <p>
      {{x.SNR_Title}}
  </p>
    </div>
</div>

(我在这里看到:https://stackoverflow.com/a/30472217/4663008

无论哪种方式,Gregor的回答和我的回答让我感到困惑 - 我原本期望在Gregor的例子中复制Species或在我的例子中删除。

如果你根据前两个例子尝试更复杂的东西,它就不起作用了:

# Moves the variable Petal.Length to the end
select(iris, -Petal.Length, everything())

编辑: 从github上的hadley快速response后,我发现有一个特殊的行为,使用everything()和select()中第一个位置的负数,它将使用所有变量启动select()off然后一切()再次将它们拉回来。非首位的负面变量不像人们预期的那样有效。

我同意在第一个位置的负变量和everything()select_helper函数需要在文档中更好地解释

编辑2:文档现已更新为“正值选择变量;负值删除变量。如果第一个表达式为负,则select()将自动以所有变量开始。”