替换R中数据帧范围内的值

替换R中数据帧范围内的值,r,R,我已经根据每列中的值对数据框中的行进行了排序 我有将值替换为NA或1的代码。但我不知道如何将数字范围替换为1,例如3-6,然后将其余的(1-2和7-10)替换为NA lag.rank <- as.matrix(lag.rank) lag.rank[lag.rank > n] <- NA lag.rank[lag.rank <= n] <- 1 lag.rank n]这就是你想要实现的目标吗 > x <- sample(1:10,20, TRUE) &g

我已经根据每列中的值对数据框中的行进行了排序

我有将值替换为NA或1的代码。但我不知道如何将数字范围替换为1,例如3-6,然后将其余的(1-2和7-10)替换为NA

lag.rank <- as.matrix(lag.rank)
lag.rank[lag.rank > n] <- NA
lag.rank[lag.rank <= n] <- 1

lag.rank n]这就是你想要实现的目标吗

> x <- sample(1:10,20, TRUE)
> x
 [1] 1 2 8 2 6 4 9 1 4 8 6 1 2 5 8 6 9 4 7 6
> x <- ifelse(x %in% c(3:6), 1, NA)
> x
 [1] NA NA NA NA  1  1 NA NA  1 NA  1 NA NA  1 NA  1 NA  1 NA  1
>x
[1] 1 2 8 2 6 4 9 1 4 8 6 1 2 5 8 6 9 4 7 6
>x x
[1] NA NA NA 1 NA 1 NA 1 NA 1 NA 1 NA 1 NA 1 NA 1

这就是您想要实现的目标吗

> x <- sample(1:10,20, TRUE)
> x
 [1] 1 2 8 2 6 4 9 1 4 8 6 1 2 5 8 6 9 4 7 6
> x <- ifelse(x %in% c(3:6), 1, NA)
> x
 [1] NA NA NA NA  1  1 NA NA  1 NA  1 NA NA  1 NA  1 NA  1 NA  1
>x
[1] 1 2 8 2 6 4 9 1 4 8 6 1 2 5 8 6 9 4 7 6
>x x
[1] NA NA NA 1 NA 1 NA 1 NA 1 NA 1 NA 1 NA 1 NA 1

如果您的数据不是整数而是数字,您可以使用
dplyr
包中的
between

x <- ifelse(between(x,3,6), 1, NA)

x如果数据不是整数而是数字,则可以使用
dplyr
包中的
between

x <- ifelse(between(x,3,6), 1, NA)

x请粘贴实际数据(通常来自
dput
或生成数据结构的代码),而不是它的图片。特别是当图片中的数据用作数据输入时,您要求我们转录您的图片。请参见此处:请粘贴实际数据(通常来自
dput
或生成数据结构的代码),而不是它的图片。特别是当图片中的数据用作数据输入时,您要求我们转录您的图片。请参见此处:
c()
是不必要的,
x谢谢!这是我需要的提示。我不得不修改一下,因为它也改变了日期。这是我需要的技巧。我不得不对它做一些修改,因为它也改变了日期。这是一个完全滞后的方法。现在这是一个完全滞后的方法