簡體   English   中英

替換R中數據框中范圍內的值

[英]Replace values within a range in a data frame in R

我已經根據每一列中的值對數據框中的行進行了排名。 排名1-10。 不是圖片中的每一列

我有將值替換為NA或1的代碼。但是我無法弄清楚如何用1替換數字范圍,例如3-6,然后用NA替換其余的數字(1-2和7-10)。

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

目前,它僅替換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

如果你的數據不是整數,但數字可以使用betweendplyr包:

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

暫無
暫無

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

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