R Can';t在来自CSV的数据框中放置日期字符串

R Can';t在来自CSV的数据框中放置日期字符串,r,csv,date,R,Csv,Date,我正在从CSV加载的数据框中提取一个日期,其格式为class。 我可以使用类和格式'YYYY-MM-DD' 当我将其放回df时,它会将其转换为excel日期 我可以拉出excel(类)并使用as.Date(as.numeric(x),orgin='1970-01-01')将其转换为以前的格式。无法在df中以正确的格式获取它 我试图创建一个可复制的示例,但似乎只有在加载CSV文件时才会出现这种情况。请参阅下面的代码。我认为,在没有实际的CSV文件的情况下,它清楚地显示了我所能想到的问题 #pull

我正在从CSV加载的数据框中提取一个日期,其格式为class
。 我可以使用类
和格式
'YYYY-MM-DD'
当我将其放回df时,它会将其转换为excel日期

我可以拉出excel(类
)并使用
as.Date(as.numeric(x),orgin='1970-01-01')将其转换为以前的格式。
无法在df中以正确的格式获取它

我试图创建一个可复制的示例,但似乎只有在加载CSV文件时才会出现这种情况。请参阅下面的代码。我认为,在没有实际的CSV文件的情况下,它清楚地显示了我所能想到的问题

#pulling it out 
> l <- CL.Spend[1,]
> 
> l
  ï..Apparatus.Contractor.Services..LLC        X      X.1
4                                       Sep 2018 Oct 2018
       X.2      X.3      X.4      X.5      X.6      X.7
4 Nov 2018 Dec 2018 Jan 2019 Feb 2019 Mar 2019 Apr 2019
       X.8      X.9     X.10     X.11           X.12
4 May 2019 Jun 2019 Jul 2019 Aug 2019 Sep 1-18, 2019
> #manipulating it
> x <- as.Date(gsub(' ','-01-',l), '%b-%d-%Y')
> #testing 
> x
 [1] NA           "2018-09-01" "2018-10-01" "2018-11-01"
 [5] "2018-12-01" "2019-01-01" "2019-02-01" "2019-03-01"
 [9] "2019-04-01" "2019-05-01" "2019-06-01" "2019-07-01"
[13] "2019-08-01" "0001-09-01"
> #replacing 
> CL.Spend[1,] <- x
> print(CL.Spend[1,])
  ï..Apparatus.Contractor.Services..LLC     X   X.1   X.2
4                                  <NA> 17775 17805 17836
    X.3   X.4   X.5   X.6   X.7   X.8   X.9  X.10  X.11
4 17866 17897 17928 17956 17987 18017 18048 18078 18109
     X.12
4 -718919
#将其拔出
>l
>l
ï..仪器.承包商.服务..有限责任公司X X.1
2018年9月4日2018年10月
X.2X.3X.4X.5X.6X.7
2018年11月4日2018年12月2019年1月2019年2月2019年3月2019年4月
X.8 X.9 X.10 X.11 X.12
2019年5月4日2019年6月2019年7月2019年8月2019年9月1日至18日
>#操纵它
>x#测试
>x
[1] NA“2018-09-01”“2018-10-01”“2018-11-01”
[5] "2018-12-01" "2019-01-01" "2019-02-01" "2019-03-01"
[9] "2019-04-01" "2019-05-01" "2019-06-01" "2019-07-01"
[13] "2019-08-01" "0001-09-01"
>#更换
>CL.Spend[1,]打印(CL.Spend[1,])
ï..仪器.承包商.服务..有限责任公司X X.1 X.2
4                                   17775 17805 17836
X.3X.4X.5X.6X.7X.8X.9X.10X.11
4 17866 17897 17928 17956 17987 18017 18048 18078 18109
X.12
4 -718919

数据框的每列只能是一个类。数据框的所有列很可能都是字符类型,因为它们来自csv文件。因此,当您尝试用日期(即隐藏整数)替换第一行时,会将其转换回字符对象。我不知道你的目标是什么,因此我不能提供任何建议或解决办法。@DaveT谢谢!我们的目标是让该行在类中,有两个值,因此如果行和列交换,这也会起作用。是的,如果您转置数据帧,并使第一列为日期,第二列为数据,这将是一个很好的解决方案。