r - if else 以列的行为条件
问题描述
应用如下逻辑:
常数 = 5
如果 count <= 常量,从值 1[1:5] 打印行,一旦 count > 常量,从值 2[1:5] 打印行。
不使用索引 - 切片,需要一个逻辑。,
预期输出:
count value_1 value_2 output
1 0.001138636 0.081404856 0.001138636
2 0.001157974 0.089056417 0.001157974
3 0.00117294 0.098103887 0.00117294
4 0.00124517 0.109297111 0.00124517
5 0.001369958 0.123153932 0.001369958
6 0.001494746 0.141047465 0.081404856
7 0.001619535 0.165075631 0.089056417
8 0.001744323 0.198308568 0.098103887
9 0.001771541 0.248464171 0.109297111
10 0.001713549 0.331921807 0.123153932
11 0.001592526 0.001197517 0.141047465
12 0.001342363 0.00159737 0.165075631
在输出列中 - 前 1:5 行来自 value_1,其余来自 value_2 - 1:7
解决方案
这是一个使用tidyverse
和一些重塑的选项:
df = read.table(text = "
count value_1 value_2 output
1 0.001138636 0.081404856 0.001138636
2 0.001157974 0.089056417 0.001157974
3 0.00117294 0.098103887 0.00117294
4 0.00124517 0.109297111 0.00124517
5 0.001369958 0.123153932 0.001369958
6 0.001494746 0.141047465 0.081404856
7 0.001619535 0.165075631 0.089056417
8 0.001744323 0.198308568 0.098103887
9 0.001771541 0.248464171 0.109297111
10 0.001713549 0.331921807 0.123153932
11 0.001592526 0.001197517 0.141047465
12 0.001342363 0.00159737 0.165075631
", header=T)
df$output = NULL
library(tidyverse)
# input constant
constant = 5
# calculate rest of values needed for value_2
nn = nrow(df) - constant
df %>%
gather(x,y,-count) %>%
group_by(x) %>%
filter((x == "value_1" & row_number() <= constant) | (x == "value_2" & row_number() <= nn)) %>%
pull(y) -> df$output
df
# count value_1 value_2 output
# 1 1 0.001138636 0.081404856 0.001138636
# 2 2 0.001157974 0.089056417 0.001157974
# 3 3 0.001172940 0.098103887 0.001172940
# 4 4 0.001245170 0.109297111 0.001245170
# 5 5 0.001369958 0.123153932 0.001369958
# 6 6 0.001494746 0.141047465 0.081404856
# 7 7 0.001619535 0.165075631 0.089056417
# 8 8 0.001744323 0.198308568 0.098103887
# 9 9 0.001771541 0.248464171 0.109297111
# 10 10 0.001713549 0.331921807 0.123153932
# 11 11 0.001592526 0.001197517 0.141047465
# 12 12 0.001342363 0.001597370 0.165075631
推荐阅读
- sql-server - Windows Installer 4.5 未出现在必备组件列表中
- java - 从数据库中检索图像并显示在另一个 jsp 页面中
- node.js - 在、nodejs、expressjs 和 Jade 模板引擎中处理 Ajax GET/POST 请求
- javascript - 添加DELETE操作导致TypeError
- ios - Cosmos DB 和 Azure.iOS 数据查询问题
- python - 如何使线图出现在同一个图形上而不是不同的图形上?
- alfresco - 如何在露天新创建的自定义页面上授予特定组人员的访问权限?
- javascript - 单击图表元素时如何重定向用户
- scala - Spark 字符串拆分不适用于最后 4 个分隔符
- wordpress - 如何使用wordpress编辑器