我想洗掉字串中的重復項。例如Predictive Modeling,第一行中的重復值。需要確保洗掉重復項后,字串沒有多余的,
mydf <- data.frame(Keyword = c("Predictive Modeling, R, Python, Predictive Modeling, SQL, Tableau, data analysis", "SQL, Tableau, data analysis, data analysis", "Predictive Modeling, Python, SQL, visualization, Spark, Tableau"))
期望的輸出
mydf <- data.frame(Keyword = c("Predictive Modeling, R, Python, SQL, Tableau, data analysis", "SQL, Tableau, data analysis", "Predictive Modeling, Python, SQL, visualization, Spark, Tableau"))
uj5u.com熱心網友回復:
這是使用的基本 R 方法strsplit:
mydf <- data.frame(Keyword = c("Predictive Modeling, R, Python, Predictive Modeling, SQL, Tableau, data analysis", "SQL, Tableau, data analysis, data analysis"))
mydf$Keyword <- unlist(
lapply(strsplit(mydf$Keyword, ", "),
function(x) paste(unique(x),
collapse = ", "))
)
mydf
#> Keyword
#> 1 Predictive Modeling, R, Python, SQL, Tableau, data analysis
#> 2 SQL, Tableau, data analysis
由reprex 包(v0.3.0)于 2022-03-27 創建
uj5u.com熱心網友回復:
這里使用toString.
transform(mydf, Keyword=sapply(strsplit(Keyword, ', '), \(x) toString(unique(x))))
# Keyword
# 1 Predictive Modeling, R, Python, SQL, Tableau, data analysis
# 2 SQL, Tableau, data analysis
# 3 Predictive Modeling, Python, SQL, visualization, Spark, Tableau
uj5u.com熱心網友回復:
這是一種基于正則運算式的方法。我們可以用空字串替換任何 CSV 術語,它也出現在字串的后面。
mydf <- data.frame(Keyword = c("Predictive Modeling, R, Python, Predictive Modeling, SQL, Tableau, data analysis", "SQL, Tableau, data analysis, data analysis"))
mydf$Keyword <- gsub("\\s*([^,] ),?(?=.*\\1(?:,|$))", "",
mydf$Keyword, perl=TRUE)
mydf
1 R, Python, Predictive Modeling, SQL, Tableau, data analyis
2 SQL, Tableau, data analyis
請注意,這種方法保留了 CSV 術語的最后一個實體,但也許這對于您的要求是可以接受的。
uj5u.com熱心網友回復:
使用tidyverse
library(dplyr)
library(tidyr)
mydf %>%
mutate(rn = row_number()) %>%
separate_rows(Keyword, sep =",\\s ") %>%
distinct() %>%
group_by(rn) %>%
summarise(Keyword = toString(Keyword), .groups = "drop") %>%
select(-rn)
-輸出
# A tibble: 3 × 1
Keyword
<chr>
1 Predictive Modeling, R, Python, SQL, Tableau, data analysis
2 SQL, Tableau, data analysis
3 Predictive Modeling, Python, SQL, visualization, Spark, Tableau
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/450197.html
標籤:r
