如何从函数输出创建打印值?

时间:2017-07-12 09:18:23

标签: r function dataframe output

我有这个数据框:

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而不是更容易区分?< / p>

1 个答案:

答案 0 :(得分:0)

如果我们需要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