这是我第一次在这里发帖,请原谅我!在R中,我基于以下条件try 识别部分重复的行:

  • 对于一行,COL1必须为非NA.它的复制品一定是NA
  • COL2可以不同,但所有其他COLS必须相同

示例df:

df = read.table(text = "
col1    col2    col3    col4    col5
a   928     0   TRUE    1
b   1028    0   FALSE   1
c   394     1   TRUE    1
NA  239     4   TRUE    0
NA  102     0   TRUE    1", h = T)

您可以看到,第1行和第5行符合我正在寻找的条件:COL1中的NON-NA和NA,COL2中的NON-NA和NA不相同,但所有其他COL都相同.所以我会称这些行为部分复制.

我希望得到的输出df只有重复的行(例如,行1和行5).所需输出将如下所示:

df = read.table(text = "
col1    col2    col3    col4    col5
a   928     0   TRUE    1
NA  102     0   TRUE    1", h = T)

请注意,这只是一个示例df,实际df要大得多.

谢谢!

推荐答案

基本上,我在下面做的是判断对于第三列到最后一列中的每一组相同的行,是否有任何col1值是NA,而任何值不是NA.希望这是有意义的!

all_other_cols <- colnames(df) |> tail(-2)

dplyr::filter(df, any(is.na(col1)) && any(!is.na(col1)), .by = all_other_cols)

输出:

  col1 col2 col3 col4 col5
1    a  928    0 TRUE    1
2 <NA>  102    0 TRUE    1

R相关问答推荐

在ggplot的注释表格中突出显示最大值

随机森林回归:下拉列重要性

如何在R中合并和合并多个rabrame?

根据模式将一列拆分为多列,并在R中进行拆分

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

未识别时区

多个过滤器内的一个盒子在仪表板Quarto

将. xlsx内容显示为HTML表

plotly hover文本/工具提示在shiny 中不起作用

计算两列中满足特定条件连续行之间的平均值

哪一行和行和 Select 特定行,但是考虑到Nas

如何根据数据帧中的值从该数据帧中提取值?

过滤名称以特定字符串开头的文件

R:用GGPLATE,如何在两个独立的变量中制作不同形状的散点图?

为左表中的所有行使用值Fill滚动左连接

基于Key->Value数据帧的基因子集相关性提取

使用geom_iles在一个切片中包含多个值

在ggplot2上从多个数据框创建复杂的自定义图形

R基于变量组合创建新的指标列

如何更改包中函数中的参数?