问题描述
我有一个像this这样的数据框,我是从.csv(或.xlsx,我都尝试过)读取的,并且数据框中的变量之一是日期向量。>
以此生成数据
Name <- rep("Date",15)
num <- seq(1:15)
Name <- paste(Name,num,sep = "_")
data1 <- data.frame(
Name,Due.Date = seq(as.Date("2020/09/24",origin = "1900-01-01"),as.Date("2020/10/08","days")
)
当我具体引用其中一个单元格时,例如:str(project_dates$Due.Date[241])
,它会正常读取日期。
但是,重要日期的确切位置因项目而异,因此我编写了一个命令来标识重要日期在工作表中的位置,例如:str(project_dates[str_detect(project_dates$Name,"Date_17"),"Due.Date"])
此代码在一些项目上有效,但是在当前项目上,它现在返回长度为2的字符向量。一个值是日期,另一个值是NA
。更糟糕的是,日期和NA
的位置在日期之间不是固定的-日期是某些单元格中的第一个值,而另一些日期中是第二个值(否则,我会引用它,例如,第一个向量中的项目)。
这是怎么回事,但更重要的是,我该如何解决?!
第二个命令的说明:
当我最初从Excel文件中读取数据时,命令为project_dates[str_detect(project_dates$Name,"Due.Date"]$Due.Date
,因为它返回了1x1的小标题,我需要小标题中的值。
当我切换为以csv形式读取数据时,我不得不删除$Due.Date
,因为该命令现在正在将值读取为原子向量,因此$运算符不再有效。
请帮助我,哦,有福的1知识!你是我唯一的希望!
经过编辑以包含数据图像,例如产生错误的图像
解决方法
我很讨厌。
我能够使用
data1<- data1[!is.na(data1$Due.Date),]
。
我假设该命令将按列表方式删除所有缺少值的行,因此,如果单元格包含2个长度的向量,那么我将丢失整行数据。相反,它从单元格中删除了NA,仅保留了日期。
感谢所有发表评论并提供帮助的人!