【问题标题】:How to create a print value from output of function?如何从函数的输出中创建打印值?
【发布时间】:2017-07-12 09:18:22
【问题描述】:

我有这个数据框:

df <- data.frame(ID=rep(33,5),
                 Number=1:5,
                 Time=c(2.00,1.98,0.82,2.12,2.53),
                 Distance=c(870,859,305,651,502))

我想按时间过滤它,所以我使用了这个代码(感谢之前的帖子):

getHLN <- function(df, ID) {
  df %>%
    filter (ID ==id & (Number %in% 1:3 & (Time < 0.90))|
           (ID == id & (Number %in% 4:5 & (Time > 2.10))))
}

现在给出这个输出:

  ID Number Time Distance
1 33      3 0.82      305
2 33      4 2.12      651
3 33      5 2.53      502

我想知道我是否能够创建或编辑我当前的函数以产生一个输出打印 -3、+4、+5 的输出,而不是更容易区分小于和大于?

【问题讨论】:

    标签: r function dataframe output


    【解决方案1】:

    如果我们需要character 列,则使用mutate 修改“编号”列

    getHLN <- function(df, id) {
     df %>%
        filter(ID ==id & (Number %in% 1:3 & (Time < 0.90))|
           (ID == id & (Number %in% 4:5 & (Time > 2.10)))) %>%
        mutate(Number = ifelse(Time < 0.90, paste0("-", Number), paste0("+", Number)))
    
     }
    
    getHLN(df, 33)
    #   ID Number Time Distance
    #1 33     -3 0.82      305
    #2 33     +4 2.12      651
    #3 33     +5 2.53      502
    

    【讨论】:

    • 我能否在一个函数中为每个 Number 发布多个 ifelse 语句?例如我试过这样做: getHLN % filter(ID ==id & (Number %in% 1:3 & (Time 2.10)))) %>% mutate(Number = ifelse(Number %in% 1:3(Time 2.10, paste0("-", Number), paste0("+", Number))) }
    • @YoungAutobot 您可以嵌套ifelsecase_when 作为选项
    猜你喜欢
    • 2021-01-21
    • 2018-10-12
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多