我的df如下。我想使用以下规则从其他列中减去col d
:
d
可以均分并从a:c
减去而不产生负数,则在cols上减去等量d
除以b:c
并除以a
的余数而又不产生负数,则从cols减去d
中减去c
,从b
中减去余数,然后从a
中减去其后的余数而不会产生负数,则从cols < / li>
d
中减去b
而从a
中减去余数而不产生负数,则从cols减去a
中减去df:
structure(list(a = c(0, 6.22, 1.2, 0.22, 0.24), b = c(8.88, 1.08,
0.25, 0, 0), c = c(13.76, 0, 19.61, 0, 0), d = c(-2.64, -0.3,
-11.06, -0.22, -0.24)), .Names = c("a", "b", "c", "d"), row.names = c(NA,
-5L), class = c("tbl_df", "tbl", "data.frame"), spec = structure(list(
cols = structure(list(a = structure(list(), class = c("collector_double",
"collector")), b = structure(list(), class = c("collector_double",
"collector")), c = structure(list(), class = c("collector_double",
"collector")), d = structure(list(), class = c("collector_double",
"collector"))), .Names = c("a", "b", "c", "d")), default = structure(list(), class = c("collector_guess",
"collector"))), .Names = c("cols", "default"), class = "col_spec"))
起始表格:
a b c d
0 8.88 13.76 -2.64
6.22 1.08 0 -0.3
1.2 0.25 19.61 -11.06
0.22 0 0 -0.22
0.24 0 0 -0.24
所需结果:
a b c d
0 7.56 12.44 -2.64
6.22 0.78 0 -0.3
1.2 0.25 8.55 -11.06
0 0 0 -0.22
0 0 0 -0.24