对不起,这个基本的问题,但我不知道如何改变字符串的字符和数字。我有一个带有28个不同数字/主题(4、5、8、9、10、11、12等)列主题的dataframe数据文件。我需要把这些数字转换成字符串,如‘sbj04 04’,‘sbj04 05’,‘sbj04 08’,‘sbj04 09’,‘sbj04 10’,‘sbj04 11’,‘sbj04 12’等等。我尝试过不同的东西,但它们不起作用。
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.下面的代码不返回我需要的内容
datafile[datafile$subject == "sbj4"] <- "sbj04"
datafile[datafile$subject == "sbj5"] <- "sbj05"
datafile[datafile$subject == "sbj8"] <- "sbj08"
datafile[datafile$subject == "sbj9"] <- "sbj09"下面的代码不返回我需要的内容
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",]下面的代码不返回我需要的内容
if (datafile$subject < 10) {
datafile$subject <- sub("^", "sbj0", datafile$subject )
} else{
datafile$subject <- sub("^", "sbj", datafile$subject )
}发布于 2015-12-10 10:33:09
如果你真的有数值的话,一个简单的方法就是使用sprintf (在基R中)。
示例:
> 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"因此,您应该尝试这样的方法:
datafile$subject <- sprintf("sbj%02.f", datafile$subject)https://stackoverflow.com/questions/34199307
复制相似问题