Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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
使用特定列之和的Lappy创建新的dataframe列_R - Fatal编程技术网

使用特定列之和的Lappy创建新的dataframe列

使用特定列之和的Lappy创建新的dataframe列,r,R,创建数据帧: res <- data.frame("ID" = c(1,2), "str" = c(21,15), "c" = c("a1","a2"), "s" = c("s1","s2"), "c1" = c(2,4), "c2" = c(6,8)) 我正在尝试创建一个新的列total,其值为8和12,这是id为1,2的行的c1和c2的总计 此处尝试使用Lappy创建列: lapply(res , sum(c('c1' , 'c2'))) 但返回错误: Error in sum(c

创建数据帧:

res <- data.frame("ID" = c(1,2), "str" = c(21,15), "c" = c("a1","a2"), "s" = c("s1","s2"), "c1" = c(2,4), "c2" = c(6,8))
我正在尝试创建一个新的列
total
,其值为8和12,这是id为1,2的行的c1和c2的总计

此处尝试使用Lappy创建列:

lapply(res , sum(c('c1' , 'c2')))
但返回错误:

Error in sum(c("c1", "c2")) : invalid 'type' (character) of argument
如何对数据帧中的特定列求和

更新:


为了了解应用函数,我尝试仅使用Lappy实现。

对于data.frames,通常更容易使用
apply
lappy
作用于向量。因此,要使用它,您需要首先使用
t
转换data.frame,这将生成一个矩阵,您可以将其更改为data.frame。因为“lapply”创建了一个列表,所以您可以使用unlist来获取一个向量,您可以从一开始就将该向量存储到data.frame中

res.t = as.data.frame(t(res[,c("c1","c2")]))
res$total = unlist(lapply(res.t, sum))

希望这能帮助您理解
lappy

这不就是
rowsumes
rowsumes(res[c('c1','c2'))
。。。或
行和(res[,c(“c1”,“c2”))
res.t = as.data.frame(t(res[,c("c1","c2")]))
res$total = unlist(lapply(res.t, sum))