【问题标题】:How to use "apply" function with 2 condition in R?如何在 R 中使用具有 2 个条件的“应用”功能?
【发布时间】:2018-10-12 15:32:55
【问题描述】:

我在数据框中有一个字符串变量,我想删除一些包含“A”或“B”等字符串的行。我使用了这些代码,但它们不起作用:

isna=apply(DATA[1], 2, function(x)x!="A"|"B")

isna=apply(DATA[1], 2, function(x)x!="A"||"B")

【问题讨论】:

  • 您能添加一个数据框样本吗?给我们head(DATA)
  • 数据[1]=c(A,B,C,C,A,D) @dmi3kno

标签: r dataframe


【解决方案1】:

你有什么理由需要使用apply吗?

DATA <- data.frame(code=sample(LETTERS[1:5],10, replace = TRUE))
subset(DATA, code!="A" & code!="B")

【讨论】:

  • 不,但我不知道在这种情况下我可以使用子集。谢谢,它的工作!
【解决方案2】:

如果我正确理解了您的需求,那么这也是一种选择:

library(dplyr)

# an exemplary dataframe 
df <- data.frame(col1 = sample(LETTERS[1:5], 20, replace = TRUE), 
             col2 = 1:20)
df

# the filter for choosing the rows
filter(df, !col1 %in% c("A", "B"))

【讨论】:

    【解决方案3】:
    isna=apply(DATA[1], 2, function(x)(x!="A")&(x!="B"))
    DATA <- DATA[isna,]
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • @vonbrand 是的,你说得对,我理解,我现在评论并在未来的情况下更多地使用它。
    猜你喜欢
    • 2018-06-20
    • 2016-11-19
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多