繁体   English   中英

R中的条件粘贴0

[英]Conditional paste0 in R

我的数据框如下所示:

N = 1000

a <- rnorm(N)
b <- rnorm(N)

df <- data.frame(a, b)

如果a的值小于 10,我想设置一个条件 paste0。

具体来说,如果a < 10,我想在a中的数字前面打印值“0”(没有空格)。

我怎样才能做到这一点? 谢谢

你可以这样做: ifelse(a < 0, paste0("0", a), a)

您可能希望使用abs(a) < 10或以其他方式特别注意负数。

我使用了@harre 解决方案,并在一个更通用的函数中实现了它,该函数也取负值。

对于未来的问题,请提供一个较小的数据集,您不需要 1000 行数据框。

a <- seq(-14, 14, by = 4)

text_number <- function(x){
  
  neg <- x < 0
  x <- abs(x)

  res <- ifelse(x < 10, paste0("0", x), x)
  res <- ifelse(neg, paste0("-", res), res)

  return(res)
}

text_number(a)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM