2

R に格納されている文字列があります。2 つの値の間のテキストを抽出するには、どのコードを使用できますか? 例えば:

sql <- "SELECT field1, field2, field3 FROM tbl WHERE x=y"

別の文字列として抽出したいfield1, field2, field3。使用できますsubstringが、「SELECT」の終わりと「FROM」の始まりに関連する整数値を決定する方法が明確ではありません。

4

4 に答える 4

0

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)))
于 2013-08-20T18:47:20.103 に答える
0

私の好みは次のとおりです。

# 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行に結合したりできます...)

于 2013-08-20T18:12:24.047 に答える