【问题标题】:Remove values of certain months of an R Data.frame?删除 R Data.frame 某些月份的值?
【发布时间】:2021-11-07 01:24:32
【问题描述】:

我有以下data.frame,我想删除某些月份的values 替换为empty cell甚至不适用)- 我试过了一些不同的事情,但没有成功。任何帮助将不胜感激。

library(lubridate)
library(tidyverse)

set.seed(123)

DF <- data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2005-12-31"), by = "day"),
                 Value = runif(1826,1,5)) %>% 
                 mutate(Year = year(Date), Month = month(Date), Day = day(Date)) %>% 
  mutate(Month %in% c(1,2,11,12), Value) <- ""

【问题讨论】:

  • 在 R 中,NA 我们使用的空单元格。否则不清楚你想要什么——"" 是一个没有长度的字符串。除此之外,语法不可用——我推荐 dplyr 文档了解如何使用其主要功能,例如 mutate

标签: r dataframe dplyr lubridate


【解决方案1】:

可以通过这种方式完成。请注意,由于您将“ ”分配给数字列,它不再是数字列。

DF <- data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2005-12-31"), by = "day"),
                 Value = runif(1826,1,5)) 

DF %>%
mutate(Value=ifelse(month(Date)%in% c(1,2,11,12),'',Value))

输出样本;

   Date       Value             
   <date>     <chr>             
 1 2001-03-10 "4.17736928444356"
 2 2005-05-28 "3.43532561417669"
 3 2004-08-10 "2.02042273338884"
 4 2004-11-04 ""                
 5 2005-04-23 "2.43464119918644"
 6 2003-07-01 "1.20879446342587"
 7 2005-08-13 "1.14129407145083"
 8 2002-01-14 ""                
 9 2001-02-19 ""                
10 2002-07-28 "2.69385460391641"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多