2016-11-01 15 views
0

私は次のように表示される変数が含まれているcsv(私はas_tibble続いfreadを使用してRでそれを読んだ後)している:Pythonで作成されたリストを含むR変数をインポートするには?

myvar 
<chr> 
[] 
[u'welcome'] 
[u'the oil price'] 

変数がPythonで作成されている、と私はこれに対処する必要がpythonesqueリスト。

自分自身をフィルタリングせずに適切な文字列(とないリスト)として直接この変数に読み込み、実際にするtidyversedplyrなど)を使用する方法はあるすべての[]]とu'

myvar_wanted 
<chr> 
    NA 
'welcome' 
'the oil price' 

ありがとうございます!

+1

gsub( '\'(。*)\ '|。'、 '\\ 1'、data $ myvar) 'maybe? – rawr

+0

いいです、それを答えに入れることはできますか?私は、何らかの手動フィルタリングがなければならないと思います。 –

+0

@rawrは完璧に動作しますが、私はあなたの正規表現を理解できません。ちょっとちょっと凝っていただけますか? –

答えて

1

文字列に一重引用符が含まれていない場合は、'\\[u\'(.*)\'\\]'を使用してかっこに続いて "u"を使用し、一重引用符で囲まれたテキストを別の括弧で囲みます。そして、あなたはそれをキャプチャすることにより、単一引用符の間にあったものを抽出することができます(私に)

簡単には残りの部分を正確にあなたが望むものをキャプチャし、無視することである(これは以下myvar3である)ので、\'(.*)\'|.は、単一引用符が一致し、いずれかをキャプチャ文字を任意の回数入力して\1を別の一重引用符にグループ化します。 は、私たちがmyvar3で行ったのと同じように正確なパターンを書き出さないようにします。

data <- data.frame(myvar = c("[]", "[u'welcome']", "[u'the oil price']")) 

within(data, { 
    myvar2 <- gsub('\'(.*)\'|.', '\\1', myvar) 
    myvar3 <- gsub('\\[(?:u\'(.*)\')?\\]', '\\1', myvar) 
}) 


#    myvar  myvar3  myvar2 
# 1     []       
# 2  [u'welcome']  welcome  welcome 
# 3 [u'the oil price'] the oil price the oil price 
+0

非常にきれいで、非常に透明です。ありがとう! –

+1

@Noobie申し訳ありませんがuと引用符はオプションなので、2番目の正規表現を更新しました。 – rawr

関連する問題