私はデータフレームの列を3つの別々の列に分割しようとしていました。私は正常に2つの目的の列に分割することができましたが、日付(年のみ)を抽出するのに問題があります。 これは私が望んでいた列の2に列を分割するために使用するコードです:リストから日付のみを抽出する
wines$Winery <- lapply(strsplit(as.character(wines$wine), "[0-9]{4}"), "[", 1)
wines$Name <- lapply(strsplit(as.character(wines$wine), "[0-9]{4}"), "[", 2)
私はすべての非数字文字を取り除くためにGSUBを使用してみましたが、しかし私にはない数字がありますつかみたい私が望むのは、列の中心から4桁の年であり、すべての行に1年の列があるわけではありません。
# winery wine
# 1 Charles Smith Charles Smith 2012 Royal City Syrah
# 2 K Vintners K Vintners 2012 Cattle King Syrah
# 3 K Vintners K Vintners 2012 Klein Syrah
# 4 Two Vintners Two Vintners 2013 Make Haste Cinsault
# 5 K Vintners K Vintners 2012 The Hidden Syrah
# 6 Kerloo Kerloo 2013 Stone Tree Malbec
# 7 Betz Family Betz Family 2012 Le Parrain Cabernet Sauvignon
# 8 Kerloo Kerloo 2013 Stone Tree Vineyard Cabernet Sauvignon
# 9 Efeste Efeste 2012 Big Papa Cabernet Sauvignon
# 10 Two Vintners Two Vintners 2013 Boushey Vineyard Orenache
# 11 K Vintners K Vintners 2012 Morrison Lane Syrah
# 12 K Vintners K Vintners 2012 The Creator Red
このデータは、Webスクレイピングを通じて収集されたので、私は、データがどのように見えるかの画像が含まれていたが、1000以上の行
は
wines <- read.table(header = TRUE, stringsAsFactors = FALSE, text = "winery wine
'Charles Smith' 'Charles Smith 2012 Royal City Syrah'
'K Vintners' 'K Vintners 2012 Cattle King Syrah'
'K Vintners' 'K Vintners 2012 Klein Syrah'
'Two Vintners' 'Two Vintners 2013 Make Haste Cinsault'
'K Vintners' 'K Vintners 2012 The Hidden Syrah'
Kerloo 'Kerloo 2013 Stone Tree Malbec'
'Betz Family' 'Betz Family 2012 Le Parrain Cabernet Sauvignon'
Kerloo 'Kerloo 2013 Stone Tree Vineyard Cabernet Sauvignon'
Efeste 'Efeste 2012 Big Papa Cabernet Sauvignon'
'Two Vintners' 'Two Vintners 2013 Boushey Vineyard Orenache'
'K Vintners' 'K Vintners 2012 Morrison Lane Syrah'
'K Vintners' 'K Vintners 2012 The Creator Red'")
コードを実験するために使用できる形式で入力する方がよいでしょう。イメージはそのタスクには役に立ちません。 – Gopala
これを行う: 'dput(head(wines、15))'と出力をあなたの質問に追加してください。 – Abdou
最終的に 'read.csv(text = gsub( '(?= \\ d {4})|(?<= \\ d {4})'、 '、'、ワイン$ wine、perl '' do - do.call( 'rbind'、strsplit(ワイン$ワイン、ワイン$ワイン)、ヘッダー= FALSE) ' – rawr