向dataframe中列中的元素添加值

向dataframe中列中的元素添加值,r,dplyr,R,Dplyr,我有以下data.frame: df<-structure(list(Ns.infection = c(0, 0, 0, 1, 1, 2, 1, 1, 6, 18, 27, 45, 75, 92, 101, 115, 4, 10, 13, 20, 21, 24, 28, 34, 42, 45), Bs.infection = c(0, 0, 1, 2, 4, 10, 4, 13, 25, 43, 71, 97, 124, 151, 183, 203, 14,

我有以下data.frame:

df<-structure(list(Ns.infection = c(0, 0, 0, 1, 1, 2, 1, 1, 6, 18, 
    27, 45, 75, 92, 101, 115, 4, 10, 13, 20, 21, 24, 28, 34, 42, 
    45), Bs.infection = c(0, 0, 1, 2, 4, 10, 4, 13, 25, 43, 71, 97, 
    124, 151, 183, 203, 14, 20, 26, 40, 48, 56, 67, 75, 83, 92), 
        Es.infection = c(0, 0, 0, 0, 0, 0, 3, 6, 13, 21, 31, 41, 
        54, 69, 80, 93, 4, 6, 8, 9, 15, 18, 23, 24, 26, 29), totinfectionscenario = c(0, 0, 1, 3, 5, 12, 8, 20, 44, 82, 129, 183, 253, 312, 364, 411,22, 36, 47, 69, 84, 98, 118, 133, 151, 166), t = 0:25), row.names = c(NA, -26L), class = c("tbl_df", "tbl", "data.frame"))

我需要将其作为一个函数,因为我必须使用数据帧列表。欢迎使用dplyr版本。谢谢

到目前为止你都试了些什么?请分享您的代码。在base R中可能更容易做到:
df[7:13,1:4]+df[6,1:4][rep(1,7),]
谢谢您的回答@jaap。这似乎按预期工作。有些东西我不明白。我一直在尝试
x[7:16]相同,如果我想将您答案中的列数限制为x[7:16,1:4],我得到的维度数不正确。我对
lappy
内部的
x
是一个向量有点困惑(不是你的答案,而是R提供的错误)。因此,此代码旨在在各个列上运行。如果您不想使用lappy,可以使用Jaap的方法。确保
rep
行数正确。我理解。您的方法的问题是,如果在列表中与lappy一起使用,数据帧将丢失其结构(我有一个包含500个数据帧的列表,其中包含这5个变量结构)。我已经想了好几个小时了。我有没有办法保持这个结构。提前谢谢。这就是为什么我有
res
变量的原因。您希望将其插入到旧结构中以保留该结构。
res   <- df
res[] <- lapply(res, function(x) {x[7:16] <- x[7:16] + x[6]; return(x)})
res   <- df
res[] <- lapply(res, function(x) {x[7:16] <- x[7:16] + x[6]; return(x)})
listOfDataFrames <- list(df,df,df)

listOfDataFrames2 <- lapply(listOfDataFrames, function(DF){ DF[] <- lapply(DF, function(x) {x[7:16] <- x[7:16] + x[6]; return(x)}); return(DF)})