R に格納されている文字列があります。2 つの値の間のテキストを抽出するには、どのコードを使用できますか? 例えば:
sql <- "SELECT field1, field2, field3 FROM tbl WHERE x=y"
別の文字列として抽出したいfield1, field2, field3
。使用できますsubstring
が、「SELECT」の終わりと「FROM」の始まりに関連する整数値を決定する方法が明確ではありません。
R に格納されている文字列があります。2 つの値の間のテキストを抽出するには、どのコードを使用できますか? 例えば:
sql <- "SELECT field1, field2, field3 FROM tbl WHERE x=y"
別の文字列として抽出したいfield1, field2, field3
。使用できますsubstring
が、「SELECT」の終わりと「FROM」の始まりに関連する整数値を決定する方法が明確ではありません。
1) 1 つの方法は、不要なものをすべて削除することです。
gsub("^SELECT *| FROM .*", "", sql)
2) 必要なフィールドを持つデータ フレームがある場合の別のアプローチは、sqldf を使用してクエリを実行し、その名前を取得することです。
library(sqldf)
tbl <- data.frame(field1 = 1, field2 = 2, field3 = 3, x = 4, y = 5)
toString(names(sqldf(sql)))
私の好みは次のとおりです。
# Pull out strings between SELECT and FROM
Fields = gsub("SELECT (.*) FROM.*","\\1",sql)
# Remove spaces
CleanFields = (gsub("\\s+", "", Fields))
# Split into items
Items = unlist(strsplit(CleanFields,","))
次に、各フィールド1をItems [1]としてインデックス付けできます
(もちろん、これは関数に入れたり、1行に結合したりできます...)