[英]Separating dates from text in R
我有一个字符串向量,其中包含站点中收集的变量的开始和结束日期的重复模式。 这是第一个条目:
“ 1942-10-06,1996-03-31雪深(in / mm)1942-11-01,1996-03-31降雪(in / mm)1942-10-01,1997-12-27生长度日加热度日平均温度(F / C)最高温度(F / C)1950-08-01,1970-03-31观测时间温度(F / C)1942-10-01,1997-12-27最低温度(F / C)1942-10 -01,1996-03-31降水(in / mm)“
有人可以帮我将每个字符串重新格式化为包含开始日期,结束日期和变量名称的表吗?
以下代码应遵循有关数据格式化方式的一些假设:
正如Oriol Mirosa所暗示的,这些假设可能不成立。
# Your string
string = "1942-10-06,1996-03-31Snow Depth (in/mm)1942-11-01,1996-03-31Snowfall (in/mm)1942-10-01,1997-12-27Growing Degree DaysHeating Degree DaysAverage Temperature (F/C)Maximum Temperature (F/C)1950-08-01,1970-03-31Observation Time Temperature (F/C)1942-10-01,1997-12-27Minimum Temperature (F/C)1942-10-01,1996-03-31Precipitation (in/mm)"
# Extract text matching Assumptions 1-3, respectively, above
library(stringr)
start_dates = str_extract_all(string, "[0-9]{4}-[0-9]{2}-[0-9]{2},")
end_dates = str_extract_all(string, ",[0-9]{4}-[0-9]{2}-[0-9]{2}")
var_names = str_extract_all(string,
",[0-9]{4}-[0-9]{2}-[0-9]{2}([^[0-9]])+")
# Remove the irrelevant bits (e.g., leading/trailing commas)
start_dates = as.Date(gsub(",", "", unlist(start_dates))) #remove ","
end_dates = as.Date(gsub(",", "", unlist(end_dates))) #remove ","
var_names = gsub(",[0-9]{4}-[0-9]{2}-[0-9]{2}", "", unlist(var_names))
# Put into table
X = data.frame("Start_date" = start_dates,
"End_date" = end_dates,
"Var_name" = var_names)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.