如何解决如何在R中使用str_pad突变变量
我想获得df $ y "01","02","03","40h"
的结果,但我无法理解我的错误:
library(tidyverse)
df <- tibble(x = c(1,2,3,4),y = c("1","2","40h"))
df %>%
mutate(y = if_else(length(y) < 2,str_pad(width=2,pad="0"),y))
#> Error: Problem with `mutate()` input `y`.
#> x argument "string" is missing,with no default
#> i Input `y` is `if_else(length(y) < 2,str_pad(width = 2,pad = "0"),y)`.
Created on 2020-10-20 by the reprex package (v0.3.0)
解决方法
您遇到三个问题。您需要摆脱length(y) <2
。 length
函数返回向量中的元素数,而不是字符串中的字符数。如果您绝对要检查字符数,请使用nchar()
。
第二,您不需要获取字符数。 width
的{{1}}参数设置输出中预期的字符数。如果输入元素的字符数已经与str_pad
相同或更多,那么它不变。
最后,width
的用法是:
str_pad
第一个预期参数是字符串。如果您不将str_pad(string,width,side = c("left","right","both"),pad = " ")
放在第一位,它将不知道在哪里寻找。您在string
的通话之外还有y
。要么将str_pad
作为第一个参数,要么在y
中指定string = y
。
str_pad
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。