R 删除重复项,忽略小数
我有这样的数据框R 删除重复项,忽略小数,r,duplicates,R,Duplicates,我有这样的数据框 a tr78.3 a tr78.2 a tr79.1 b tr12.2 b tr12.3 我想删除第二列中的重复项,忽略小数,因此这是我的输出(我可以选择第一列) 有很多方法可以获取唯一值(即df%>%distinct(df$V1,df$V2)),但我如何指定我的问题?我们可以使用sub提取子字符串,应用复制的以获得逻辑索引并对数据集进行子集划分 df1[!duplicated(sub("\\.\\d+$", "", df1[,2])),] 或者使用tidyverse l
a tr78.3
a tr78.2
a tr79.1
b tr12.2
b tr12.3
我想删除第二列中的重复项,忽略小数,因此这是我的输出(我可以选择第一列)
有很多方法可以获取唯一值(即df%>%distinct(df$V1,df$V2)),但我如何指定我的问题?我们可以使用
sub
提取子字符串,应用复制的
以获得逻辑索引并对数据集进行子集划分
df1[!duplicated(sub("\\.\\d+$", "", df1[,2])),]
或者使用
tidyverse
library(dplyr)
library(stringr)
df1 %>%
distinct(V2 = str_replace(V2, "\\.\\d+$", ""), .keep_all = TRUE)
数据
df1谢谢你,akrun!我不敢相信这这么容易,我试着拆分,然后取唯一的等等..做一些复杂的事情,再次谢谢
library(dplyr)
library(stringr)
df1 %>%
distinct(V2 = str_replace(V2, "\\.\\d+$", ""), .keep_all = TRUE)
df1 <- structure(list(V1 = c("a", "a", "a", "b", "b"), V2 = c("tr78.3",
"tr78.2", "tr79.1", "tr12.2", "tr12.3")), .Names = c("V1", "V2"
), class = "data.frame", row.names = c(NA, -5L))