R创建data.frame并将对象视为.Date-R版本3.5.0-Rstudio版本1.1.447-

R创建data.frame并将对象视为.Date-R版本3.5.0-Rstudio版本1.1.447-,r,dataframe,as.date,R,Dataframe,As.date,我在玩一个数据帧,我不能把我的头围绕在一个问题上。以下是我使用的代码: Died.At <- c(22,40,72,41) Writer.At <- c(16, 18, 36, 36) First.Name <- c("John", "Edgar", "Walt", "Jane") Second.Name <- c("Doe", "Poe", "Whitman", "Austen") Sex <- c("MALE", "MALE", "MALE", "FEMALE"

我在玩一个数据帧,我不能把我的头围绕在一个问题上。以下是我使用的代码:

Died.At <- c(22,40,72,41)
Writer.At <- c(16, 18, 36, 36)
First.Name <- c("John", "Edgar", "Walt", "Jane")
Second.Name <- c("Doe", "Poe", "Whitman", "Austen")
Sex <- c("MALE", "MALE", "MALE", "FEMALE")
Date.Of.Death <- c("2015-05-10", "1849-10-07", "1892-03-26","1817-07-18")
writersdataframe <- data.frame(Died.At, Writer.At, I(First.Name), I(Second.Name), Sex, as.Date(Date.Of.Death))
我这样编写代码是因为我希望R将Date.Of.Death解释为日期,但不希望在数据框内的列名称中显示as.Date。我找到了一种方法,即在创建数据帧之前更改格式:

Date.Of.Death <- as.Date(Date.Of.Death)
writersdataframe <- data.frame(Died.At, Writer.At, I(First.Name), I(Second.Name), Sex, I(Date.Of.Death))
我想知道的是,我是否可以在函数data.frame中将Date.Of.Death直接处理为.Date时创建数据框。 是否有这样做的原因(例如:


writersdataframe请参见下面的解释以获得澄清

有几种方法可以解决原始问题中的问题

解决方案1:直接指定所有列名。这更明确,使代码更可读

writersdataframe <- data.frame(Died.At = Died.At, Writer.At = Writer.At, First.Name = First.Name, Second.Name = Second.Name, Sex = Sex, Date.of.Death = as.Date(Date.Of.Death))

希望这有帮助。

您可以在创建数据框时专门命名列。例如:writersdataframe Nice,谢谢。在我以前尝试在使用writersdataframe时出于某种原因这样做时,您只希望在data.frame函数调用中使用=。我的解决方案包括命名要放置数据框的列死亡日期数据输入。如果有帮助,我可以写一个更详细的答案作为答案。我仍然不明白为什么
class(writersdataframe$Date.Of.Death)
[1] "AsIs" "Date"
writersdataframe <- data.frame(Died.At, Writer.At, I(First.Name), I(Second.Name), Sex, as.Date(Date.Of.Death))
writersdataframe <- data.frame(Died.At = Died.At, Writer.At = Writer.At, First.Name = First.Name, Second.Name = Second.Name, Sex = Sex, Date.of.Death = as.Date(Date.Of.Death))
Date.Of.Death <- as.Date(c("2015-05-10", "1849-10-07", "1892-03-26","1817-07-18"))

writersdataframe <- data.frame(Died.At, Writer.At, I(First.Name), I(Second.Name), Sex, I(Date.Of.Death))