簡體   English   中英

比較兩列並替換R中的值

[英]Compare two columns and replace value in R

我想比較R中兩列的值。如果無損天數(dfd)大於或與總天數列(TotalDays)相同,那么我想將dfy值替換為Age(這是天數)-總天數。

我已經看到了與此有關的不同問題,但到目前為止似乎沒有任何效果。 如果有人能幫助我,我將不勝感激!

Example columns:

dfy        TotalDays   age    
7305.00    2872.21     10261
2556.75    3001.43     10210
3215.31    2941.87     12931

我要實現的示例:(將dfy替換為age-TotalDays)

dfy        TotalDays   age
7433.79    2872.21     10261
2556.75    3001.43     10210
9988.13    2941.87     12931

可復制的代碼:

df <- data.frame(dfy=c(7305.00,2556.75,3215.31),
          TotalDays = c(2872.21, 3001.43, 2941.87), age = c(10261, 10210, 12931))

我們可以創建一個邏輯vector並僅替換'dfy'中對於該vector為TRUE的那些元素。

i1 <- with(df, TotalDays < dfy)
df$dfy[i1] <- with(df, age[i1] - TotalDays[i1])

更快的選擇是通過在適當位置分配( := )使用data.table

library(data.table)
setDT(df)[TotalDays < dfy, dfy := age - TotalDays]

暫無
暫無

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

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