簡體   English   中英

在R中讀取csv文件時如何忽略值中的逗號?

[英]How to ignore comma in values while reading csv files in R?

我正在從包含一堆 csv 文件的文件夾中讀取 R 中的 csv 文件。 我只需要讀取文件名包含特定字符串(“冗余”)的選定文件。 在某些所需文件中,其中一個列(“ROLE”)值包含逗號。 我需要忽略這些逗號。 我該怎么做?

例如:一些所需的文件具有如下值:

User,ROLE,Rule ID<br/>
amit,[oi.freetier.developer, gse.automationengineer],R12345

當我執行以下代碼時:

files <- list.files(pattern='.*REDUNDANT(.*).csv$')

tbl <- sapply(files, read_csv, col_types = cols(.default = "c"), quote = "[]", simplify=FALSE) %>% 
  bind_rows(.id = "id") %>% select(id, `User Login`, `Rule ID`) %>% distinct()

我得到的結果如下:

 id `User` `Rule` <chr> <chr> <chr> 1 Users.csv_REDUNDANT_amit.csv amit gse.automationengineer]

您可以首先將文件作為原始文本讀取,以便您可以用引號替換括號,然后將其作為 csv 讀取:

tbl <- sapply(files, function(f) {
           gsub('\\[|\\]', '"', readLines(f)) %>%
               read.csv(text = ., check.names = FALSE)
       }) %>% 
       bind_rows(.id = "id") %>%
       select(id, User, `Rule ID`) %>%
       distinct()

暫無
暫無

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

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