[英]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.