簡體   English   中英

r 中的數據表,將值分配給不使用其名稱的特定列

[英]Data table in r, assign value to a specific column not using it's name

我正在寫一個 function 如果列中的值為 NA,它將歸為零。 我需要估算的表格將采用以下格式:

tab = data.table(V1 = 1, var = NA, perc = NA) 

表將具有不同的列名,但要估算的列名始終是第二個。 為簡化起見,function 可以是:

impute = function(DT, variable) {
DT[is.na(get(variable)), variable := 0]
}

第二個“變量”需要包含在我認為可以工作的東西中。 我想指出

variable = colnames(tab)[2]

任何人都可以幫忙嗎

您可以將變量包裝在()中:

library(data.table)

impute = function(DT, variable) {
    DT[is.na(get(variable)), (variable) := 0]
}

variable = colnames(tab)[2]
impute(tab, variable)

tab
#   V1 var perc
#1:  1   0   NA 

我認為您不需要 function ,您可以

cols <- colnames(DT)[2]
DT[, (cols) := lapply(.SD, function(z) replace(z, is.na(z), 0)), .SDcols = cols]

雖然如果你想要一個,你可以做

na0 <- function(x, default = 0) replace(x, is.na(x), default)
DT[, (cols) := lapply(.SD, na0), .SDcols = cols]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM