【发布时间】:2021-06-14 08:13:01
【问题描述】:
我有一个数据集 dft 由变量 name、weight、height 组成,如下所示
name <- c("Bob","Mary","Jane","Kim")
weight <- c(60,65,45,55)
height <- c(170,165,140,135)
dft <- data.table(name,weight,height,)
现在对于Bob,我想将其重量加 10,将其高度加 12。我试过这个:
dft[, c("weight","height") := lapply( .SD, function(x){
if (x == c(60,170) ) {
x = c(70,182)
}
}), .SDcols = grep("eight$",names(dft)) ]
但它不起作用。警告和错误一再出现。我希望使用lapply 来做到这一点。任何建议表示赞赏。
【问题讨论】:
-
这对你有用吗?我有点不清楚你为什么要使用
lapply。dft[name=="Bob", c("weight", "height") := .(weight + 10, height+12)]
标签: r dplyr data.table tidyverse