grepl函数无法直接报废欧元符号

时间:2017-11-10 12:18:02

标签: r

我正在通过网络进行报废" fotocasa"在西班牙。

我下载包含价格的项目,执行以下操作:

url<-"https://www.fotocasa.es/es/comprar/casas/madrid-provincia/todas-las-zonas/l/3?latitude=40.415&longitude=-3.7104&combinedLocationIds=724,14,28,0,0,0,0,0,0"
idealista <- html(url)
price<-idealista %>%
  html_nodes("span") %>% #item de precios
  html_text()

我有一个类似的向量:

>price
...
[97] "hace 1 hora"                                         "198.500€"                                           
 [99] "198.500€"                                            "€"                                                  
[101] "4 habs."                                             "128 m²"                                             
[103] ""                                                    ""                                                   
[105] ""                                                    ""                                                   
[107] ""                                                    "hace 1 hora"                                        
[109] "6.000.000€"                                          "6.000.000€"                                         
[111] "€"                                                   "5 habs."                                            
[113] "641 m²"                                              ""                                                   
[115] ""                                                    ""                                                   
[117] ""                                                    ""                                                   
[119] "hace 1 hora"                                         "1.800.000€"                                         
[121] "1.800.000€"                                          "€"                                                  
[123] "Ha bajado 100.000€"                                  "5 habs."                                            
[125] "800 m²"                                              ""                                                   
[127] ""                                                    ""                                                   
[129] ""                                                    ""                                                   
[131] "hace 1 hora"                                         "690.000€"                                           
[133] "690.000€"                                            "€"                                                  
[135] "Ha bajado 410.000€"                                  "3 habs."                                            
[137] "320 m²"                                              ""                                                   
[139] ""                                                    ""       
...

我只想要包含欧元符号的值,所以我要做的是:

>price<-price[grepl("€",price)]

但我得到的是:

> price
character(0)

因为它不承认欧元符号。如果我创建一个包含欧元符号的向量,并且我使用函数grepl,它可以工作!但是如果我直接从报废中尝试它就不起作用。

问题

我该怎样做才能制作&#34; grepl&#34;函数直接从报废中识别出这个符号吗?

结果:

结果必须是这样的:

> price
 [1] "198.500€"             "198.500€"             "6.000.000€"           "6.000.000€"           "1.800.000€"          
 [6] "1.800.000€"           "Ha bajado 100.000€"   "690.000€"             "690.000€"             "Ha bajado 410.000€"  
[11] "2.450.000€"           "2.450.000€"           "Ha bajado 450.000€"   "1.350.000€"           "1.350.000€"          
[16] "1.200.000€"           "1.200.000€"           "2.275.000€"           "2.275.000€"           "2.200.000€"          
[21] "2.200.000€"           "540.000€"             "540.000€"             "975.000€"             "975.000€"            
[26] "3.750.000€"           "3.750.000€"           "1.100.000€"           "1.100.000€"           "1.800.000€"  

1 个答案:

答案 0 :(得分:1)

我们可以使用unicode

res <- price[grepl("\u20AC",price, perl = TRUE)]
length(res)
#[1] 91

作为OP的代码提供

any(grepl("€",price))
#[1] FALSE