R 如何用另一帧(例如95到117)替换普通数字的帧(例如84到106)?

R 如何用另一帧(例如95到117)替换普通数字的帧(例如84到106)?,r,replace,R,Replace,我尝试了replace这样的功能 df$x<-replace(df$x,84:106, 95:117) 再次使用c和seq,但没有得到期望的结果 (IMHO)最简单的解决方案 df$x[df$x==c(84:106)]<-c(95:117) df$x[df$x==c(84:106)]replace在这里似乎没有必要: df$x = df$x + 11 或者,如果要仅替换该范围内的数字,而不替换其他数字: in_range = df$x >= 84 & df$x

我尝试了
replace
这样的功能

df$x<-replace(df$x,84:106, 95:117)
再次使用
c
seq
,但没有得到期望的结果

(IMHO)最简单的解决方案

df$x[df$x==c(84:106)]<-c(95:117) 

df$x[df$x==c(84:106)]
replace
在这里似乎没有必要:

df$x = df$x + 11
或者,如果要仅替换该范围内的数字,而不替换其他数字:

in_range = df$x >= 84 & df$x <= 106
df$x[in_range] = df$x[in_range] + 11
in_range=df$x>=84&df$x您可以

df$x <- ifelse(df$x >=84 & df$x <=106, x+11,x)

df$x=84&df$x假设您不需要执行
+11
操作,您可以执行以下操作:

library(data.table)
dt <- data.table(x = 1:5, y = 2:6)

dt[, x := replace(x, which(x %in% 2:5), 8:11)]

你能提供一个df$x的小例子和预期结果吗?最近的一次尝试:patient_ab_sec1$patient.ID[哪个(patient_ab_sec1$patient.ID==c(84:106))]使用
df$x[df$x%in%c(84:106)]+11似乎更好是的,它可以工作,但我必须只替换特定的“部分”我可以试试这个特定的部分,但这是临时解决方案,不是吗?我不确定将来,数字是否会完全不同于11。@JakhongirAlidjanov这就是我的第二段代码所做的。很难确切地理解YOUR的目标是什么。但是还有其他一些表格,这些病人id号也不同,但数值不同于11。因此,如果有人能提出解决方案,我将不胜感激,这可能有点“普遍性”。非常感谢你们,伙计们。我使用过这些代码,它们似乎工作得很好,但在不久的将来,我们将获得新的数据,并且会出现新的差异。
library(data.table)
dt <- data.table(x = 1:5, y = 2:6)

dt[, x := replace(x, which(x %in% 2:5), 8:11)]
dt[, x := replace(x, which(x %in% 8:11), c(21, 24, 45, 65))]