大佬教程收集整理的这篇文章主要介绍了使用 data.table 更改列的值 数据,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据集 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
来做到这一点。任何建议表示赞赏。
我们可以将 fifelse
与 @H_429_3@map 一起使用(假设我们正在匹配这些值)
library(data.tablE)
dft[,c("weight","height") := Map(function(x,y)
fifelse(x %in% c(60,170),x + y,X),.SD,c(10,12)),.SDcols = patterns('eight$')][]
-输出
# name weight height
#1: Bob 70 182
#2: Mary 65 165
#3: Jane 45 140
#4: Kim 55 135
或者如果是基于'name'的值
dft[name == 'Bob',c('weight','height') :=
.SD + list(10,12),.SDcols = patterns("eight$")]
dft <- data.table(name,weight,height)
以上是大佬教程为你收集整理的使用 data.table 更改列的值 数据全部内容,希望文章能够帮你解决使用 data.table 更改列的值 数据所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。