我在从以下数据中删除适量信息时遇到问题:
18,14,17,2,9,8
17,17,17,14
18,14,17,2,1,1,1,1,9,8,1,1,1
我正在应用 !duplicate 来删除重复项。
SplitFunction <- function(x) {
b <- unlist(strsplit(x, '[,]'))
c <- b[!duplicated(b)]
return(paste(c, collapse=","))
}
Run Code Online (Sandbox Code Playgroud)
我在仅删除连续的重复项时遇到问题。下面的结果是我得到的。
18,14,17,2,9,8
17,14
18,14,17,2,1,9,8
下面的数据是我想要获得的。
18,14,17,2,9,8
17,14
18,14,17,2,1,9,8,1
你能建议一种方法来执行此操作吗?理想情况下是矢量化方法...
谢谢,
米格尔
您可以使用 rle 函数来解决这个问题。
xx <- c("18,14,17,2,9,8","17,17,17,14","18,14,17,2,1,1,1,1,9,8,1,1,1")
zz <- strsplit(xx,",")
sapply(zz,function(x) rle(x)$value)
Run Code Online (Sandbox Code Playgroud)
并且你可以参考这个链接。 如何在 R 中按顺序删除/折叠连续的重复值?
| 归档时间: |
|
| 查看次数: |
1444 次 |
| 最近记录: |