CSV中的单元格被错误地读取为R

问题描述

我有一个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,仅保留了日期。

感谢所有发表评论并提供帮助的人!