2016-02-21 123 views
-1

我有以下列格式的数据集 {r} Name Start End Abc 01/05/2015 00:00 01/06/2015 00:00 bbb 05/04/2015 00:00 05/05/2015 00:00 拆分柱通过空间分隔符

我想此数据帧转换为以下格式

{r} Name Start End Month Abc 01/05/2015 01/06/2015 January bbb 05/04/2015 05/05/2015 May

从本质上讲,我想根据空格分隔符拆分列,然后将每个日期转换为一个月。

我的数据框的名字是ba。最初日期列是一个因素,我将它转换成一个字符。我尝试使用strsplit()。 {r} ba$time <- strsplit(ba$Start," ") 和我得到这个输出c(“01/05/2016”,“00:00”)

有人可以帮我这个。

回答

1
通过使用 lapply,匹配的一个或多个空间( \\s+),随后的字符,直到字符串的末尾并与 ''取代它,分配输出的第二和第三列(“开始”,“结束”)

我们环背部。通过将“开始”转换为Date类创建“月”列,使用format提取月份。

ba[2:3] <- lapply(ba[2:3], sub, pattern="\\s+.*", replacement="") 
ba$Month <- format(as.Date(ba$Start, format='%m/%d/%Y'), '%B') 
ba 
# Name  Start  End  Month 
#1 Abc 01/05/2015 01/06/2015 January 
#2 bbb 05/04/2015 05/05/2015  May