English 中文(简体)
Nest if if if 贴标签
原标题:Nested if else statements to append labels to values

I have a column of numbers from 1:1000. I want to append the label "s" to the front of each number so that the total number of characters in each cell remains the same. For instance, "1" would become "s0001", "15" would become "s0015", "620" would become "s0620", and "1000" would become "s1000".

我曾尝试使用封套的<代码>,如果是,那么我就会发现该条件已经过长的错误;只有第一点内容才能使用。

这里是一套实例数据,使用Im代码:

df=data.frame(code=seq(1:1000))
df$code=
  if (df$code < 10) { df$code=paste("s000",df$code,sep="") } else
    if (100 > df$code & df$code >= 10) { df$code=paste("s00",df$code,sep=="") } else
      if (1000 > df$code & df$code >= 100) { df$code=paste("s0",df$code,sep="") } else
      { df$code=paste("s",df$code,sep="") }

I suspect there is an easier way to do this without using if else. Any thoughts?

感谢!


<>Solution

感谢约兰! 如果X是非连续的惯性:

d=data.frame(x=sample(1:1000,500))
d$nc=nchar(d$x)
ddply(d,.(nc),transform,lab = paste("s",paste(rep("0",4-unique(nc)),collapse = ""),x,sep = ""))
最佳回答

how/代码

> sprintf( s%04d , c(1,10,100,1000))
[1] "s0001" "s0010" "s0100" "s1000"
问题回答

我肯定说,这样做有更好的办法,我很想诉诸<条码>dply,但至少是:

d <- data.frame(x = 1:1000,nc = nchar(1:1000))
ddply(d,.(nc),transform,lab = paste("s",paste(rep("0",4-unique(nc)),collapse = ""),x,sep = ""))

我们走了一步,这要好得多,我认为:

paste("s",sapply(4-nchar(1:1000),function(i) paste(rep("0",i),collapse = "")),1:1000,sep = "")




相关问题
How to plot fitted model over observed time series

This is a really really simple question to which I seem to be entirely unable to get a solution. I would like to do a scatter plot of an observed time series in R, and over this I want to plot the ...

REvolution for R

since the latest Ubuntu release (karmic koala), I noticed that the internal R package advertises on start-up the REvolution package. It seems to be a library collection for high-performance matrix ...

R - capturing elements of R output into text files

I am trying to run an analysis by invoking R through the command line as follows: R --no-save < SampleProgram.R > SampleProgram.opt For example, consider the simple R program below: mydata =...

R statistical package: wrapping GOFrame objects

I m trying to generate GOFrame objects to generate a gene ontology mapping in R for unsupported organisms (see http://www.bioconductor.org/packages/release/bioc/vignettes/GOstats/inst/doc/...

Changing the order of dodged bars in ggplot2 barplot

I have a dataframe df.all and I m plotting it in a bar plot with ggplot2 using the code below. I d like to make it so that the order of the dodged bars is flipped. That is, so that the bars labeled "...

Strange error when using sparse matrices and glmnet

I m getting a weird error when training a glmnet regression. invalid class "dgCMatrix" object: length(Dimnames[[2]]) must match Dim[2] It only happens occasionally, and perhaps only under larger ...

Generating non-duplicate combination pairs in R

Sorry for the non-descriptive title but I don t know whether there s a word for what I m trying to achieve. Let s assume that I have a list of names of different classes like c( 1 , 2 , 3 , 4 ) ...

Per panel smoothing in ggplot2

I m plotting a group of curves, using facet in ggplot2. I d like to have a smoother applied to plots where there are enough points to smooth, but not on plots with very few points. In particular I d ...

热门标签