如何根据另一行中文本的存在删除行?

时间:2015-03-25 20:32:36

标签: r

如果另一个字段中有任何文本,我试图根据一个字段从数据框中删除行。如果列“c”包含0并且列“a”包含任何文本,我想删除该行。如何根据另一行中文本的存在删除行?

一些糟糕的伪代码有助于澄清:

if "a" is text AND c == 0: remove row


# Sample Data
a = c("text1", "text2", "", "text4", "text5")
b = c(1,2,3,4,5)
c = c(63.5, 23.4, 0, 34.34, 0)

df = data.frame(a,b,c)

enter image description here


预期输出:

enter image description here

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是

subset(df, (a=="" | c!=0) )

#       a b     c
# 1 text1 1 63.50
# 2 text2 2 23.40
# 3       3  0.00
# 4 text4 4 34.34

subset(df, !(a!="" & c==0))
在没有缺失值的情况下,

都是logically equivalent