相关疑难解决方法(0)

如何防止ifelse()将Date对象转换为数字对象

我正在使用该函数ifelse()来操作日期向量.我期望结果是类Date,并且很惊讶地得到了一个numeric向量.这是一个例子:

dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05'))
dates <- ifelse(dates == '2011-01-01', dates - 1, dates)
str(dates)
Run Code Online (Sandbox Code Playgroud)

这尤其令人惊讶,因为在整个向量上执行操作会返回一个Date对象.

dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05'))
dates <- dates - 1
str(dates)
Run Code Online (Sandbox Code Playgroud)

我应该使用其他功能来操作Date矢量吗?如果是这样,有什么功能?如果没有,我如何强制ifelse返回与输入相同类型的向量?

帮助页面ifelse表明这是一个功能,而不是一个错误,但我仍然在努力寻找一个解释我发现的令人惊讶的行为.

datetime if-statement r

136
推荐指数
6
解决办法
3万
查看次数

R:列集中的最后一个非NA值

我正在寻找下面的问题的解决方案,将在管道中支持.

我的数据看起来像这样:

tibble(
  column_set_1_1 = c(1, 2, 3), column_set_1_2 = c(2, 3, NA), column_set_1_3 = c(3, NA, NA),
  column_set_2_1 = c(1, 2, 3), column_set_2_2 = c(4, 5, 6), column_set_2_3 = c(7, 8, 9), 
  column_set_2_4 = c(10, 11, NA), column_set_2_5 = c(13, NA, NA), column_set_2_6 = c(NA, NA, NA)
)

# A tibble: 3 × 9
  column_set_1_1 column_set_1_2 column_set_1_3 column_set_2_1 column_set_2_2 column_set_2_3 column_set_2_4 column_set_2_5 column_set_2_6
           <dbl>          <dbl>          <dbl>          <dbl>          <dbl>          <dbl>          <dbl>          <dbl>          <lgl>
1              1              2              3              1              4              7 …
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
394
查看次数

标签 统计

r ×2

datetime ×1

if-statement ×1