2017-10-21 8 views
-1

データフレームの要素から文字列を削除:、だから私は、出力がこの沿って何かであるデータフレームを持って

 VALUE  pat   animal model 
    <dbl>  <chr>  <chr>  <chr> 
1 0.0000000 14 bunny bunny  semi 
2 0.0000021 911 Bunny Bunny  semi 
3 0.0000093 922 BUNNY BUNNY  semi 
4 0.0000118 629 Bunny Bunny  semi 
5 0.0000203 807 Bunny Bunny  semi 
6 0.0000245 263 Bunny Bunny  semi 
7 0.0001229 1015 BUNNY BUNNY  semi 
8 0.4401012 401 bunny bunny  semi 
9 0.5979202 568 bunny bunny  semi 

データセットはそのようなもので、なぜ私にはわからないが、あなたが見ることができるようにpat列には値があり、次にanimal列に表示されているものと同じ文字列があります。 私が望むのは、すべてのエントリのpat列からbunny文字列を削除して、その値が単なる単なる値になるようにすることです。

これは動作するはずなど、bunnyのさまざまなバリエーションがあること、また、念頭に置いて、

+0

'DF $特許= as.numeric(サブ( "\\ S [-ZA-Z] + $"、 ""、trimws(DFの$パット))) ' – useR

+1

ORその値を仮定あなたは常に最初の数字 'sub("(\\ d +)。* "、" \\ 1 "、df $ pat)' – G5W

+0

G5Wを探しています。残念ながら、もう1つの提案は、代わりにすべてをNAにしました。 –

答えて

0

すなわち大文字の手紙これを行う簡単な方法があります。再現可能なデータセットがないことを考えれば、あなたが投稿したのと同じフォーマットでどのようにデータを操作するのか、いくつかのデータ操作が必要でした。

require(stringr) 

k <- read.table(text = "VALUE  pat   animal model 
    1 0.0000000 14_bunny bunny  semi 
2 0.0000021 911_Bunny Bunny  semi 
3 0.0000093 922_BUNNY BUNNY  semi 
4 0.0000118 629_Bunny Bunny  semi 
5 0.0000203 807_Bunny Bunny  semi 
6 0.0000245 263_Bunny Bunny  semi 
7 0.0001229 1015_BUNNY BUNNY  semi 
8 0.4401012 401_bunny bunny  semi 
9 0.5979202 568_bunny bunny  semi") 

k$pat <- stringr::str_replace(k$pat,"_", " ") 
k$nums <- str_extract(k$pat,"\\d+") 
k$nums_format <- as.numeric(k$nums) 

k 
     VALUE  pat animal model nums nums_format 
1 0.0000000 14 bunny bunny semi 14   14 
2 0.0000021 911 Bunny Bunny semi 911   911 
3 0.0000093 922 BUNNY BUNNY semi 922   922 
4 0.0000118 629 Bunny Bunny semi 629   629 
5 0.0000203 807 Bunny Bunny semi 807   807 
6 0.0000245 263 Bunny Bunny semi 263   263 
7 0.0001229 1015 BUNNY BUNNY semi 1015  1015 
8 0.4401012 401 bunny bunny semi 401   401 
9 0.5979202 568 bunny bunny semi 568   568 

str(k) 
'data.frame': 9 obs. of 6 variables: 
$ VALUE  : num 0.00 2.10e-06 9.30e-06 1.18e-05 2.03e-05 ... 
$ pat  : chr "14 bunny" "911 Bunny" "922 BUNNY" "629 Bunny" ... 
$ animal  : Factor w/ 3 levels "bunny","Bunny",..: 1 2 3 2 2 2 3 1 1 
$ model  : Factor w/ 1 level "semi": 1 1 1 1 1 1 1 1 1 
$ nums  : chr "14" "911" "922" "629" ... 
$ nums_format: num 14 911 922 629 807 ... 
関連する問題