Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 删除重复项,忽略小数_R_Duplicates - Fatal编程技术网

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))