gpt4 book ai didi

r - 根据列值更新 data.table 中的列值

转载 作者:行者123 更新时间:2023-12-04 09:47:16 26 4
gpt4 key购买 nike

考虑下面的代码:

library(data.table) 
dataT <-data.table(1:15,runif(15),runif(15),runif(15))

for(vrb in names(dataT)) {
dataT[get(vrb) < 0.5, (vrb):=0.5] # update value
}

从代码中可以推断,我基本上将每列的最低值限制为 0.5。为了对行进行子集化,我使用了 get 函数。

这是正确的做法,还是有其他更符合 data.table 的方式?

最佳答案

我们可以使用set

for(vrb in names(dataT)){
set(dataT, i = which(dataT[[vrb]] < 0.5), j = vrb, value = 0.5)
}

第一列中的元素 > 0.5。因此,我们可以将 set 应用于除第一列之外的列

for(vrb in names(dataT)[-1]){
set(dataT, i = which(dataT[[vrb]] < 0.5), j = vrb, value = 0.5)
}

关于r - 根据列值更新 data.table 中的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40101828/

26 4 0