Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R在列表中减去列_R_List_Apply_Lapply_Subtraction - Fatal编程技术网

R在列表中减去列

R在列表中减去列,r,list,apply,lapply,subtraction,R,List,Apply,Lapply,Subtraction,我想减去列表中的特定列。我还在学习如何正确使用apply函数。例如,给定 > b <- list(data.frame(12:16, 3*2:6), data.frame(10:14, 2*1:5)) > b [[1]] X12.16 X3...2.6 1 12 6 2 13 9 3 14 12 4 15 15 5 16 18 [[2]] X10.14 X2...

我想减去列表中的特定列。我还在学习如何正确使用apply函数。例如,给定

> b <- list(data.frame(12:16, 3*2:6), data.frame(10:14, 2*1:5))
> b

[[1]]
  X12.16 X3...2.6
1     12        6
2     13        9
3     14       12
4     15       15
5     16       18

[[2]]
  X10.14 X2...1.5
1     10        2
2     11        4
3     12        6
4     13        8
5     14       10
>b
[[1]]
X12.16 X3…2.6
1     12        6
2     13        9
3     14       12
4     15       15
5     16       18
[[2]]
X10.14 X2…1.5
1     10        2
2     11        4
3     12        6
4     13        8
5     14       10
我想要一些函数x,这样我就可以

> x(b)

[[1]]
  X12.16 X3...2.6  <newcol>
1     12        6         6
2     13        9         4
3     14       12         2
4     15       15         0
5     16       18        -2

[[2]]
  X10.14 X2...1.5  <newcol>
1     10        2         8
2     11        4         7
3     12        6         6
4     13        8         5
5     14       10         4
>x(b)
[[1]]
X12.16 X3…2.6
1     12        6         6
2     13        9         4
3     14       12         2
4     15       15         0
5     16       18        -2
[[2]]
X10.14 X2…1.5
1     10        2         8
2     11        4         7
3     12        6         6
4     13        8         5
5     14       10         4

提前感谢。

如果您的data.frames具有良好且一致的名称,您可以将
transform
lappy

b <- list(data.frame(a=12:16, b=3*2:6), data.frame(a=10:14, b=2*1:5))
lapply(b, transform, c=a-b)

b如果您的data.frames具有良好且一致的名称,则可以使用
transform
lappy

b <- list(data.frame(a=12:16, b=3*2:6), data.frame(a=10:14, b=2*1:5))
lapply(b, transform, c=a-b)
b这里有一个解决方案:

lapply(b, function(x) {
  x[, 3] <- x[, 1] - x[, 2]
  x
})

[[1]]
  X12.16 X3...2.6 V3
1     12        6  6
2     13        9  4
3     14       12  2
4     15       15  0
5     16       18 -2

[[2]]
  X10.14 X2...1.5 V3
1     10        2  8
2     11        4  7
3     12        6  6
4     13        8  5
5     14       10  4
lappy(b,函数(x){
这里有一个解决方案:

lapply(b, function(x) {
  x[, 3] <- x[, 1] - x[, 2]
  x
})

[[1]]
  X12.16 X3...2.6 V3
1     12        6  6
2     13        9  4
3     14       12  2
4     15       15  0
5     16       18 -2

[[2]]
  X10.14 X2...1.5 V3
1     10        2  8
2     11        4  7
3     12        6  6
4     13        8  5
5     14       10  4
lappy(b,函数(x){

x[,3]带
dplyr

library(dplyr)
lapply(b, function(x) x %>% mutate(new_col = .[[1]]-.[[2]]))
结果:

[[1]]
  X12.16 X3...2.6 new_col
1     12        6       6
2     13        9       4
3     14       12       2
4     15       15       0
5     16       18      -2

[[2]]
  X10.14 X2...1.5 new_col
1     10        2       8
2     11        4       7
3     12        6       6
4     13        8       5
5     14       10       4

使用
dplyr

library(dplyr)
lapply(b, function(x) x %>% mutate(new_col = .[[1]]-.[[2]]))
结果:

[[1]]
  X12.16 X3...2.6 new_col
1     12        6       6
2     13        9       4
3     14       12       2
4     15       15       0
5     16       18      -2

[[2]]
  X10.14 X2...1.5 new_col
1     10        2       8
2     11        4       7
3     12        6       6
4     13        8       5
5     14       10       4