对应于r中的rowname的变量

时间:2017-05-21 04:10:15

标签: r

现在我有number如下所示:

.df

v1 v2 v3

1 2 3

如果4 5 6的{​​{1}}不等于v2的{​​{1}},我应该如何处理rownames,然后删除这两行?

谢谢大家。

更新:

对于下面的这个df,您可以看到第1行和第2行的rownames(df) %% 2 == 0相同,所以我想将这两行保持为一对(v2显示为1和4) 。

同样地,我想保留第10行和第11行,因为它们具有相同的rownames(df) %% 2 == 1并且它们是一对。

我该怎么做才能获得新的df?

enter image description here

2 个答案:

答案 0 :(得分:1)

1)创建一个带有列的数据框,其次数为id

library(sqldf)
df2=sqldf("select count(id),id from df group by id"

2)合并他们

df3=merge(df1,df2) 

3)仅在count> 1

时选择
df3[df3$count>1,]

答案 1 :(得分:1)

如果您要查找的是保留配对ID并删除其余ID(我怀疑它就像这样简单),那么..

  1. 提取您的ID:我已将它们写出来,您应该提取。 id = c(263733,263733,2913733,3243733,3723733,4493733,273733,393733,2953733,3583733,3583733)

  2. 对它们进行排序

  3. 找出要保留的内容。 id1 = cbind(id[1:length(id)-1],id[2:length(id)])

  4. chosenID = id1[which(id1[,1]==id1[,2]),1]

    1. 然后从你的df中提取那些chosenID
    2. 的行