【问题标题】:mutate many columns in dplyr for log(1+x)为 log(1+x) 改变 dplyr 中的许多列
【发布时间】:2015-04-17 00:28:36
【问题描述】:

我想做这样的事情:

mutate_each(myDF, funs(log(1+x)), myvar1:myvar10

基本上,对于 myDF 中 myvar1 到 myvar10 之间的每一列,我想取 log(1 +x)。但是,我不确定如何将其写入funs。有什么帮助吗?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    log(1 + .) 放入funs,如下所示:

    mutate_each(myDF, funs(log(1 + .)), myvar1:myvar10)
    

    例如:

    mutate_each(mtcars, funs(log(1 + .)), mpg:wt)
    

    【讨论】:

    • 但是如果我已经来月经了怎么办。我的确切代码正在通过管道输入:mutate_each(., funs(log(1+x)), myvar1:myvar10)。那么会有2个时期?
    • @user1357015 是的,这仍然有效。但是,您不需要在第一个参数中使用第一个句点。你可以做myDF %>% mutate_each(funs(log(1 + .)), myvar1:myvar10)
    • 非常感谢。我喜欢保留句点以查看点子的去向。我知道我不需要它。有没有一个很好的教程,我可以看到 R 如何处理这个时期。它只是词法作用域还是类似的?
    • 句点在magrittr 包中处理,特别是%>% 函数。运行get("%>%") 会显示代码,这有点复杂。 This tutorial 也可能有帮助。
    • 或者你可以使用log1p() ;)
    猜你喜欢
    • 2015-02-24
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2021-06-21
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多