R 如果a大于b,如何打印真或假

R 如果a大于b,如何打印真或假,r,R,我在R中有数据,如果DST大于另一列中的AriT,我希望打印为真。 这是我得到的部分数据 AriT DST 1516 1450 1150 1518 1502 1519 1343 1210 下面的问题是我到目前为止得到的,但有些问题是它们如何打印出来的 outpatient_data["check"] <- if(any(outpatient_data$AriT<outpatient_data$DST)) { "TRUE" } else { "FA

我在R中有数据,如果DST大于另一列中的AriT,我希望打印为真。 这是我得到的部分数据

AriT   DST
1516   1450
1150   1518
1502   1519 
1343   1210
下面的问题是我到目前为止得到的,但有些问题是它们如何打印出来的

outpatient_data["check"] <- if(any(outpatient_data$AriT<outpatient_data$DST)) {
    "TRUE"
} else {
   "FALSE"
}  

门诊数据[“check”]R带有内置的向量化,这意味着许多操作自然地应用于向量的每个元素。因此,您可以直接使用
21150 1518对
#>315021519对
#>41343 1210错误
您的代码正在返回所有
TRUE
,因为您使用了
any
,它将向量作为输入,如果任何值均为TRUE,则返回
TRUE
。它还将循环使用该值以填充数据帧的整个长度,这就是为什么它会生成所有
TRUE
,而不是下面的一个

any(门诊数据$check)
#>[1]是的

由(v0.2.0)于2018年8月23日创建。

我将逐步解释这里发生的事情

首先,让我们重新创建示例数据帧

outpatient_data <- read.table(text = "AriT   DST
1516   1450
1150   1518
1502   1519 
1343   1210",
                              header = TRUE, stringsAsFactors = FALSE)

输出只是一个元素,
TRUE
FALSE
。这就是
any
函数的作用。它对向量求值,以查看是否有任何元素
为TRUE
。由于
门诊数据$Arit的输出只需
使用(门诊数据,Arit
无需
if/else
作为逻辑运算输出为TRUE/false谢谢!这真的很有帮助!我能再问你一个问题吗?如果我想删除AriT中大于DST的值(在Check列中说False)。我需要使用哪种查询?这可能会有帮助。>子集(门诊数据$AriT,门诊数据$check!=“TRUE”)我使用此查询删除AriT中的变量以及它们如何不消失……正如我在帖子中提到的,“TRUE”是一个字符,所以
门诊数据$check!=“TRUE“
对我来说没有意义<代码>!如果您在逻辑条件下工作,门诊数据$check对我来说更有意义。如果我使用它,它仍然保持不变!门诊数据$check。如果要删除check列中为FALSE的变量,是否需要将其赋值为NULL?
outpatient_data$AriT < outpatient_data$DST
# [1] FALSE  TRUE  TRUE FALSE
any(outpatient_data$AriT<outpatient_data$DST)
# [1] TRUE
outpatient_data["check"] <- if(any(outpatient_data$AriT<outpatient_data$DST)) {
  "TRUE"
} else {
  "FALSE"
}