2016-02-21 205 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