R 根据逻辑参数消除行

R 根据逻辑参数消除行,r,R,我有一个超过20万个数据的大数据集。我想消除那些在他们旁边的行中有错误陈述的患者 这就是它的样子: patient1 FALSE TRUE FALSE FALSE patient2 TRUE TRUE TRUE TRUE Patient3 TRUE NA NA NA Patient4 FALSE NA NA NA 这就是我希望数据集的外观 Patient2 TRUE TRUE TRUE TRUE Patient3 TRUE NA

我有一个超过20万个数据的大数据集。我想消除那些在他们旁边的行中有错误陈述的患者

这就是它的样子:

patient1  FALSE  TRUE  FALSE FALSE
patient2  TRUE   TRUE  TRUE  TRUE
Patient3  TRUE    NA   NA     NA
Patient4  FALSE   NA   NA     NA
这就是我希望数据集的外观

Patient2 TRUE  TRUE  TRUE  TRUE
Patient3  TRUE  NA    NA   NA

谁能帮帮我吗

将除patient column之外的所有列连接到一个新变量,并在整个数据集上使用grepl函数,检查下面的代码是否相同

     def <- data.frame(patient=c("patient1","patient2","patient3"),one=c(T,F,T),two=c(T,T,T),three=c(T,NA,NA),
          stringsAsFactors = F)

        def <- within(def,new<-paste(one,two,three))

        def <- subset(def, !grepl(F,def$new))

        def$new <- NULL

print(def)
patient  one  two three
1 patient1 TRUE TRUE  TRUE
3 patient3 TRUE TRUE    NA
您可以使用行和执行此操作,如下所示:

df[rowSums(!df[, -1], na.rm = TRUE) == 0, ]
df
            V2   V3    V4    V5
patient1 FALSE TRUE FALSE FALSE
patient2  TRUE TRUE  TRUE  TRUE
Patient3  TRUE   NA    NA    NA
Patient4 FALSE   NA    NA    NA

df[rowSums(!df, na.rm = TRUE) == 0, ]
           V2   V3   V4   V5
patient2 TRUE TRUE TRUE TRUE
Patient3 TRUE   NA   NA   NA
输出为:

2 patient2 TRUE TRUE TRUE TRUE
3 Patient3 TRUE   NA   NA   NA
编辑:根据下面对row.names的注释,添加不同的选项:

如果读取数据框时,患者编号是行的名称而不是自己的列,则可以得到如下结果:

df[rowSums(!df[, -1], na.rm = TRUE) == 0, ]
df
            V2   V3    V4    V5
patient1 FALSE TRUE FALSE FALSE
patient2  TRUE TRUE  TRUE  TRUE
Patient3  TRUE   NA    NA    NA
Patient4 FALSE   NA    NA    NA

df[rowSums(!df, na.rm = TRUE) == 0, ]
           V2   V3   V4   V5
patient2 TRUE TRUE TRUE TRUE
Patient3 TRUE   NA   NA   NA

Qazaz,oyu需要让你的帖子更具可读性Hello thx需要你的帮助。当我使用这段代码时,我得到一个错误:“x”必须是一个至少二维的数组,我做错了什么?我是这样理解的:df,但我拥有的数据帧中有超过200000个数据,如何以代码可用的方式读取大数据?不确定为什么不能使用read.csv或类似命令将200000行数据读入R。我之所以使用上述语法,是因为您提供了示例data.cool thx。我可以将数据读入R,但我认为它的设置方式不允许代码识别变量。