簡體   English   中英

如何從數據框中刪除特殊字符

[英]How to remove special character from data frame

我已從網址導入數據,並使用以下代碼將其轉換為數據框:

url <-"http://apims.doe.gov.my/v2/hourly2.php"
tables<- readHTMLTable(url)
try<-do.call(rbind, lapply(tables, data.frame, stringsAsFactors=FALSE))

數據旁邊的數字帶有“ *”。 我只想隔離數字。 所以代替

52* 45* 67* 55*

我有

52 45 67 55

我嘗試了幾種方法來從第3列到第8列中獲取*特殊字符並將該列更改為數字,但是由於該字符在R中也具有含義,因此無法使用。 我努力了:

x <- "~!@#$%^&*" 
str_replace_all(x, as.character(try[,3:8]), " ") 

我也嘗試過:

gsub("*","",try[,3:8])

唯一可以正確識別*字符的函數是grep和grapl,但是我需要另一個函數,該函數將使用grep輸出刪除'*'特殊字符。

grep('*',try)

嘗試這個:

dat<-do.call(rbind, lapply(tables, data.frame, stringsAsFactors=FALSE))
dat[, -(1:2)] <- sapply(dat[, -(1:2)], function(col) {
  as.numeric(sub("[*]$", "", col))
})
head(dat)
# NEGERI...STATE                 KAWASAN.AREA MASA.TIME06.00AM MASA.TIME07.00AM MASA.TIME08.00AM MASA.TIME09.00AM MASA.TIME10.00AM MASA.TIME11.00AM
# NULL.1                Johor                  Kota Tinggi               52               53               52               50               50               49
# NULL.2                Johor                  Larkin Lama               51               51               51               NA               51               51
# NULL.3                Johor                         Muar               45               45               45               45               45               45
# NULL.4                Johor                 Pasir Gudang               56               56               55               56               56               56
# NULL.5                Kedah                   Alor Setar               50               50               50               50               50               49
# NULL.6                Kedah      Bakar Arang, Sg. Petani               NA               NA               NA               NA               NA               NA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM