簡體   English   中英

根據其他列中的值添加新的 data.frame 列

[英]Add new data.frame column based on values in other columns

我試圖迭代一個數據表來計算兩列的積分,一個dt$xmin和一個dt$xmax ,使用函數f ,將答案寫入新列dt$integral 我目前正在嘗試使用類似下面的代碼但沒有成功:

dt$integral <- mapply(f, dt$xmin, dt$xmax)

任何幫助將不勝感激!

也許您不需要mapply並且一個簡單的分配應該可以工作dt$integral<- f(dt$min, dt$max) 沒有您想要的數據或示例,但我認為這對您data.table (使用data.table ):

library(data.table)
dt <- as.data.table(mtcars)
newfunc <- function(a, b){
  return(a + log(b) - exp(a/b) + 3.1*a^1.918)
}

# Adding a new column called "newcol"
> head(dt[, newcol := newfunc(wt, mpg/qsec),])

    mpg cyl disp  hp drat    wt  qsec vs am gear carb    newcol
1: 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4  14.73145
2: 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4  16.30387
3: 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1  11.45233
4: 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1  13.87593
5: 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2  13.78816
6: 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1 -10.84599

對於單個新列,上述變量賦值樣式將起作用。 對於多個新列和函數,您需要使用一個函數來返回新列的列表。 使用:=data.table查找更多關於賦值的data.table

暫無
暫無

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

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