提问人:MikiK 提问时间:8/28/2023 最后编辑:PhilMikiK 更新时间:8/28/2023 访问量:36
将字符列转换为日期列(月份列)[复制]
Convert character column into date column (month column) [duplicate]
问:
我有以下数据表,其中列是 -column。我想将其转换为格式。month
character
date
structure(list(delivYear= c("2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018", "2018"
), year = c("2014", "2014", "2014", "2014", "2014",
"2014", "2014", "2014", "2014", "2014", "2014", "2014", "2015",
"2015", "2015", "2015", "2015", "2015", "2015", "2015", "2015",
"2015", "2015", "2015", "2016", "2016", "2016", "2016", "2016",
"2016", "2016", "2016", "2016", "2016", "2016", "2016", "2017",
"2017", "2017", "2017", "2017", "2017", "2017", "2017", "2017",
"2017", "2017", "2017", "2018", "2018", "2018", "2018", "2018",
"2018", "2018", "2018", "2018", "2018", "2018", "2018"), q = c("Q1",
"Q1", "Q1", "Q2", "Q2", "Q2", "Q3", "Q3", "Q3", "Q4", "Q4", "Q4",
"Q1", "Q1", "Q1", "Q2", "Q2", "Q2", "Q3", "Q3", "Q3", "Q4", "Q4",
"Q4", "Q1", "Q1", "Q1", "Q2", "Q2", "Q2", "Q3", "Q3", "Q3", "Q4",
"Q4", "Q4", "Q1", "Q1", "Q1", "Q2", "Q2", "Q2", "Q3", "Q3", "Q3",
"Q4", "Q4", "Q4", "Q1", "Q1", "Q1", "Q2", "Q2", "Q2", "Q3", "Q3",
"Q3", "Q4", "Q4", "Q4"), month = c("Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan",
"Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
"Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan",
"Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
"Nov", "Dec"), nrOrders = c("0", "0", "0", "0", "0",
"0", "0", "0", "1", "1", "2", "0", "2", "4", "5", "3", "7", "3",
"5", "4", "3", "7", "8", "7", "2", "24", "16", "33", "9", "27",
"16", "10", "27", "9", "31", "35", "11", "11", "25", "15", "18",
"19", "19", "8", "27", "34", "43", "51", "0", "11", "2", "0",
"0", "0", "0", "0", "4", "5", "1", "0"), eur = c("0", "0", "0",
"0", "0", "0", "0", "0", "180", "8760", "17760", "0", "6730",
"5354", "2840", "22190", "29210", "8725", "7226", "12500", "2090",
"13780", "21434", "15719", "29000", "112366", "38148", "125900",
"10285", "54281", "23777", "111512", "76907", "18306", "124393",
"103220", "8890", "52082", "119095", "28482", "62841", "54356",
"54119", "42999", "112459", "169798", "123808", "504226", "0",
"55336", "3017", "0", "0", "0", "0", "0", "15880", "1844", "252",
"0"), yearMonth = c("2014_Jan", "2014_Feb", "2014_Mrz",
"2014_Apr", "2014_Mai", "2014_Jun", "2014_Jul", "2014_Aug", "2014_Sep",
"2014_Okt", "2014_Nov", "2014_Dez", "2015_Jan", "2015_Feb", "2015_Mrz",
"2015_Apr", "2015_Mai", "2015_Jun", "2015_Jul", "2015_Aug", "2015_Sep",
"2015_Okt", "2015_Nov", "2015_Dez", "2016_Jan", "2016_Feb", "2016_Mrz",
"2016_Apr", "2016_Mai", "2016_Jun", "2016_Jul", "2016_Aug", "2016_Sep",
"2016_Okt", "2016_Nov", "2016_Dez", "2017_Jan", "2017_Feb", "2017_Mrz",
"2017_Apr", "2017_Mai", "2017_Jun", "2017_Jul", "2017_Aug", "2017_Sep",
"2017_Okt", "2017_Nov", "2017_Dez", "2018_Jan", "2018_Feb", "2018_Mrz",
"2018_Apr", "2018_Mai", "2018_Jun", "2018_Jul", "2018_Aug", "2018_Sep",
"2018_Okt", "2018_Nov", "2018_Dez")), row.names = c(NA, -60L), class = c("data.table",
"data.frame")
我该如何处理这个问题才能将 -column 从字符转换为格式?month
date
答:
1赞
NicolasH2
8/28/2023
#1
对于您的具体情况,如果您的 data.frame 存储在 变量 中,您可以这样做:a
b <- paste(a$year,a$month,"01")
b <- as.Date(b, format = "%Y %B %d")
a <- cbind(a, myDate=b)
这对你有用吗?
评论
0赞
MikiK
8/28/2023
问题是:对于 3 月、5 月、10 月和 12 月,我得到 NA(在第 2 步之后)。我认为这是本地设置的问题。此外,我希望具有与列中相同的列输入,但是在使用 时,我想获取日期而不是字符列。month
str()
0赞
NicolasH2
8/28/2023
如果您使用 yearMonth 列,我会看到这是一个问题,因为那里的月份是德语缩写(例如 Mrz 而不是 Mar),但在您的月份列中并非如此。从未听说过区域设置影响。Date(),但你当然可以尝试用这个替换第 2 行:b <- as.Date(gsub("Mar","Mrz",b), format = "%Y %B %d")
1赞
MikiK
8/28/2023
#2
假设数据表是 ,则执行以下操作:dt
dt$month = factor(dt$month, levels = month.abb)
评论