我有一个名为 dat
的 data.frame。我想向它添加一个名为 dif
的新列。然后,如果 lower
和 upper
范围包含 0(例如,-0.41
到 0.1
在第一行)我希望 dif
值显示 FALSE
否则(例如,0.10
到 0.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 会
aws-cloudformation - AWS Proton 与 CloudFormation
swift - 如何在 SwiftUI 上启用核心数据加密?
python - 如何从 Python 字典中的键中删除尾随空格?
python - numpy/pandas 向量化自定义 for 循环