向data.frames列表的每个元素添加新变量

向data.frames列表的每个元素添加新变量,r,dataframe,lapply,R,Dataframe,Lapply,我有一个数据帧列表(C)。我想给每个数据帧添加一个新变量“d”,它是“a”和“b”的和。这里有一个简短的例子 A<-data.frame(1:10, 101:110, 201:210) colnames(A)=c("a","b", "c") B<-data.frame(11:20, 111:120, 211:220) colnames(B)=c("a","b", "c") C<-list(A, B) 有什么想法吗? 顺便说一句,如何选择创建的变量的名称? Thanx提前这

我有一个数据帧列表(C)。我想给每个数据帧添加一个新变量“d”,它是“a”和“b”的和。这里有一个简短的例子

A<-data.frame(1:10, 101:110, 201:210)
colnames(A)=c("a","b", "c")

B<-data.frame(11:20, 111:120, 211:220)
colnames(B)=c("a","b", "c")

C<-list(A, B)
有什么想法吗? 顺便说一句,如何选择创建的变量的名称?
Thanx提前

这应该很容易在中使用

out <- lapply(C, function(x) within(x, d <- a + b))

然后,您可以将
out
存储为
C
(即
C或使用
cbind

C <- lapply(C, function(x) cbind(x, d = x[["a"]] + x[["b"]]))
> str(out)
List of 2
 $ :'data.frame':       10 obs. of  4 variables:
  ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
  ..$ b: int [1:10] 101 102 103 104 105 106 107 108 109 110
  ..$ c: int [1:10] 201 202 203 204 205 206 207 208 209 210
  ..$ d: int [1:10] 102 104 106 108 110 112 114 116 118 120
 $ :'data.frame':       10 obs. of  4 variables:
  ..$ a: int [1:10] 11 12 13 14 15 16 17 18 19 20
  ..$ b: int [1:10] 111 112 113 114 115 116 117 118 119 120
  ..$ c: int [1:10] 211 212 213 214 215 216 217 218 219 220
  ..$ d: int [1:10] 122 124 126 128 130 132 134 136 138 140
C <- lapply(C, function(x) cbind(x, d = x[["a"]] + x[["b"]]))
C <- lapply(C, function(x) cbind(x, d = rowSums(x[1:2])))