r - 添加一列显示前两列是否包含 0

我有一个名为 dat 的 data.frame。我想向它添加一个名为 dif 的新列。然后,如果 lowerupper 范围包含 0(例如,-0.410.1 在第一行)我希望 dif 值显示 FALSE 否则(例如,0.100.2 第 2 行)TRUE

对于任何类似的 data.frame,是否可以在 R 中执行此操作(以下是玩具示例,感谢您提供功能性答案)?

dat <- data.frame(lower = c(-0.41, .1, -.2), upper = 1:3*.1, row.names = paste("a", 1:3)) # add a column called `dif`


desired_output <- data.frame(lower = c(-0.41, .1, -.2), upper = 1:3*.1, dif = c(F,T,F), row.names = paste("a", 1:3))

最佳答案

你可以使用dplyr::between:

library(dplyr)

dat %>% 
  rowwise() %>% 
  mutate(dif = !between(0, lower, upper))

输出

# A tibble: 3 x 3
# Rowwise: 
  lower upper dif  
  <dbl> <dbl> <lgl>
1 -0.41   0.1 FALSE
2  0.1    0.2 TRUE 
3 -0.2    0.3 FALSE

https://stackoverflow.com/questions/65487839/

相关文章:

python - 模块未找到错误 : No module named 'psycopg2' in i

java - 问题启动 Cassandra。 Java 运行时环境 : 检测到 fatal erro

java - 在 java.time 中,为什么 WeekFields.SUNDAY_START 会

r - 根据条件为每个 ID 创建不同数量的行

aws-cloudformation - AWS Proton 与 CloudFormation

swift - 如何在 SwiftUI 上启用核心数据加密?

python - 如何从 Python 字典中的键中删除尾随空格?

python - numpy/pandas 向量化自定义 for 循环

angular - 引用错误 : Can't find variable: globalThis

powershell - 如何显示使用扩展参数调用的命令行