让我们看看下面的案例。
有一个应该处理的标签列表。 这是我使用的“for”循环,它适用于小列表。 但对于具有一百万个元素的列表来说,它太长了。 如何加快此类处理速度。
# 1. List of 'original' tags
list_tags_original <- c(",tag1, tag2,, tag3", "tag3, tag4,", "tag5")
# 2. List of 'adjusted' tags
list_tags_adjusted <- c()
# 3. Process each 'original' tags
for(i in 1:length(list_tags_original)) {
# 3.1. List of selected tags
list_tags_selected <- list_tags_original[i]
# 3.2. Split on separate tags
list_tags_selected <- trimws(unlist(str_split(list_tags_selected, ",")))
# 3.3. Drop 'missing' tags
list_tags_selected <- list_tags_selected[list_tags_selected != ""]
# 3.4. Merge back into the string
list_tags_selected <- paste0(list_tags_selected, collapse = ",")
# 3.5. Add to list of 'adjusted' tags
list_tags_adjusted <- c(list_tags_adjusted, list_tags_selected)
} # for
# 4. Result
list_tags_adjusted
#[1] "tag1,tag2,tag3" "tag3,tag4" "tag5"
最佳答案
也许使用 gsub
会更快?
gsub(",+", ",", gsub(" +|^,+|,+$", "", list_tags_original))
#[1] "tag1,tag2,tag3" "tag3,tag4" "tag5"
关于r - 如何加快 R 中元素列表的处理速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62001404/