簡體   English   中英

根據R中另一列的值乘以數據框列的值

[英]Multiplying data frame column values based on the value of another column in R

我在R中有一個數據框(150000 obs,15個變量),需要根據另一個值校正一個變量的值子集(簡單地乘以一個常數)。 有什么簡單的方法可以做到這一點?

雖然我可以應用,但是我不確定如何編寫函數(顯然不能在函數中乘法)和限定符:

df$RESULT <- df[apply(df$RESULT, 1, function(x * 18.01420678) where(SITE==1)), ]

你是這個意思?

dat      <- data.frame(x=1:10,y=sample(20,10))
constant <- 100
dat$y    <- ifelse(dat$x > dat$y, dat$y*constant, dat$y)

您可以使用“ [”的容量進行子設置,但是對於子集的“更正”,您需要使用邏輯表達式來定義分配雙方的子集。 由於您將僅使用需要校正的值,因此無需使用任何其他條件函數。

df[ df$SITE==1, "RESULT" ] <- df[ df$SITE==1, "RESULT"] * 18.01420678

如果要對大量(幾百萬個)案例進行操作或在模擬中重復進行操作,則此方法可能比ifelse方法快得多

暫無
暫無

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

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