簡體   English   中英

R將邏輯向量替換為“ on”或“ off”

[英]R replace logical vector with “on” or “off”

我正在嘗試創建一個襯板,該襯板將基於true或false將邏輯向量替換為“ on”或“ off”。

我能想到的最好的方法是使用2 gsubs。

假設我有矢量tmp

tmp <- sample(100,100)

我可以用

blah <- tmp > 50
blah <- gsub(FALSE, "no", blah)
blah <- gsub(TRUE, "yes", blah)

實現我想要的,但是我敢打賭,這里有一個更優雅的解決方案。

使用ifelse

blah <- ifelse(tmp > 50, "yes", "no")

嘗試

r1 <- c('no', 'yes')[(tmp>50)+1]
identical(r1, blah)
#[1] TRUE

要么

 r2 <- as.character(factor(tmp>50, labels=c('no', 'yes')))
 identical(r1, r2)
#[1] TRUE

要么

 library(qdap)
 r3 <-  mgsub(c(FALSE, TRUE), c('no', 'yes'), tmp > 50)
 identical(r1,r3)
 #[1] TRUE

要么

 library(car)
 r4 <- recode(tmp>50, "FALSE='no'; TRUE='yes'")
 identical(r1,r4)
 #[1] TRUE

暫無
暫無

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

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