首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将前导零添加到整数列

将前导零添加到整数列
EN

Stack Overflow用户
提问于 2015-12-10 10:23:07
回答 1查看 125关注 0票数 1

对不起,这个基本的问题,但我不知道如何改变字符串的字符和数字。我有一个带有28个不同数字/主题(4、5、8、9、10、11、12等)列主题的dataframe数据文件。我需要把这些数字转换成字符串,如‘sbj04 04’,‘sbj04 05’,‘sbj04 08’,‘sbj04 09’,‘sbj04 10’,‘sbj04 11’,‘sbj04 12’等等。我尝试过不同的东西,但它们不起作用。

代码语言:javascript
复制
datafile$subject = as.factor(datafile$subject) #it works
datafile$subject <- sub("^", "sbj", datafile$subject ) #it works, but all numbers become 'sbj4', 'sbj5', 'sbj8', 'sbj9', sbj10', etc.

下面的代码不返回我需要的内容

代码语言:javascript
复制
datafile[datafile$subject == "sbj4"] <- "sbj04"
datafile[datafile$subject == "sbj5"] <- "sbj05"
datafile[datafile$subject == "sbj8"] <- "sbj08"
datafile[datafile$subject == "sbj9"] <- "sbj09"

下面的代码不返回我需要的内容

代码语言:javascript
复制
datafile[datafile$subject == "sbj4",] <- datafile[datafile$subject == "sbj04",]
datafile[datafile$subject == "sbj5",] <- datafile[datafile$subject == "sbj05",]
datafile[datafile$subject == "sbj8",] <- datafile[datafile$subject == "sbj08",]
datafile[datafile$subject == "sbj9",] <- datafile[datafile$subject == "sbj09",]

下面的代码不返回我需要的内容

代码语言:javascript
复制
if (datafile$subject < 10) {
      datafile$subject <- sub("^", "sbj0", datafile$subject )
    } else{
      datafile$subject <- sub("^", "sbj", datafile$subject )
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 10:33:09

如果你真的有数值的话,一个简单的方法就是使用sprintf (在基R中)。

示例:

代码语言:javascript
复制
> x <- 1:15
> sprintf("sbj%02.f", x)
 [1] "sbj01" "sbj02" "sbj03" "sbj04" "sbj05" "sbj06" "sbj07" "sbj08" "sbj09"
[10] "sbj10" "sbj11" "sbj12" "sbj13" "sbj14" "sbj15"

因此,您应该尝试这样的方法:

代码语言:javascript
复制
datafile$subject <- sprintf("sbj%02.f", datafile$subject)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34199307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档