作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有一种简单的方法可以从奇数行中减去偶数行。基本上:第一行 (A1) 减去第二行 (A2),第三行 (A3) 减去第四行 (A4)。
test <- structure(list(Well_positions = c("A1", "A2", "A3", "A4", "A5",
"A6", "A7", "A8", "A9", "A10", "A11", "A12"), Layout = c("SM1_1",
"BA1", "SM1_2", "BB1", "SM1_3", "BC1", "SM1_4", "BD1", "SM1_5",
"BE1", "ST1_1", "BF1"), Abs_18 = c(0.20585, 0.16226, 0.1695,
0.11268, 0.16271, 0.11269, 0.23633, 0.18636, 0.22289, 0.18856,
0.11974, 0.059685), FL_18 = c(3669, 51, 3578, 52, 3594, 51, 5378,
55, 5104, 54, 825, 58)), .Names = c("Well_positions", "Layout",
"Abs_18", "FL_18"), row.names = c(NA, -12L), class = c("tbl_df",
"tbl", "data.frame"))
到目前为止,我只有创建两个独立数据框的想法:
library(dplyr)
data_s <- filter(test, grepl("S", Layout))
data_b <-filter(test, grepl("B", Layout))
然后我想保留 data_s
中的“Well_positions”和“Layout”,并获取其余列的差异 (data_s[,3:4] - data_b[ ,3:4]
)。但是我不知道如何保留前两列...我可以做的是从 data_b 添加两列,然后执行减法,但是当我有更多列时,它会变得非常困惑。
最佳答案
基于@brettljausn 的过滤解决方案:
library(dplyr)
test %>% {cbind(.[c(T,F),] %>% rename_all(paste0,"_1"),
.[c(F,T),] %>% rename_all(paste0,"_2"))} %>%
mutate(delta_Abs_18 = Abs_18_1 - Abs_18_2,
delta_FL_18 = FL_18_1 - FL_18_2)
# Well_positions_1 Layout_1 Abs_18_1 FL_18_1 Well_positions_2 Layout_2 Abs_18_2 FL_18_2 delta_Abs_18 delta_FL_18
# 1 A1 SM1_1 0.20585 3669 A2 BA1 0.162260 51 0.043590 3618
# 2 A3 SM1_2 0.16950 3578 A4 BB1 0.112680 52 0.056820 3526
# 3 A5 SM1_3 0.16271 3594 A6 BC1 0.112690 51 0.050020 3543
# 4 A7 SM1_4 0.23633 5378 A8 BD1 0.186360 55 0.049970 5323
# 5 A9 SM1_5 0.22289 5104 A10 BE1 0.188560 54 0.034330 5050
# 6 A11 ST1_1 0.11974 825 A12 BF1 0.059685 58 0.060055 767
关于r - 行减法(A1-A2、A3-A4 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648753/
我是一名优秀的程序员,十分优秀!