【发布时间】:2016-05-01 17:02:50
【问题描述】:
在我的数据框中,我的一列(character 类)的条目长度为 5 或 9 个字符。我想取那些 5 个字符长的,并在后面附加 4 个零以使它们长 9 个字符。 (EG转12345 in 123450000)
我尝试使用sqldf 和以下代码:
mydf<-sqldf("UPDATE mydf SET column = column + '0000' WHERE LENGTH(column) < 6")
但由于某种原因,它将mydf 变成了null 值,我认为问题在于连接。
也试过concat(),但我明白了:
sqliteSendQuery(con, statement, bind.data) 中的错误: 语句中的错误:没有这样的功能:concat`。
注意:答案不一定必须使用 sqldf,我只是给出了一种我尝试这样做的方法。
【问题讨论】:
-
请在问题中添加适当的标签,以便每个人都能理解
-
可能是
mydf$column=ifelse(nchar(mydf$column)<6,paste0(mydf$column,'0000'),mydf$column) -
工作,非常感谢! (如果你愿意,你可以把它放在答案中,我会接受它)。顺便说一句,如果有人知道为什么我对 sqldf 的尝试没有奏效,我很好奇 :)
-
您还可以使用
stringr包来获得“更清洁”的解决方案。str_pad(mydf$column, 9, side = "right").
标签: r string string-concatenation sqldf