![](/img/trans.png)
[英]Compare columns of two different tables and replace specific words in a string 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.