# [R](https://www.r-project.org), 22 bytes

```r
\(x)rep(1,strtoi(x,2))
```

[Attempt This Online!](https://ato.pxeger.com/run?1=m72waMG6pMy8xKLKkvxSEGW7tLQkTddiW4xGhWZRaoGGoU5xSVFJfqZGhY6RpiZEcjeKDo0KWyUDA0MwUIKqWLAAQgMA)

Convert from binary and repeat ```1``` that many times. 

Unfortunately shorter than the more-interesting (I think): 

# [R](https://www.r-project.org), <s>36</s> 34 bytes

*Edit: -2 bytes thanks to pajonk*

```r
\(x)Reduce(\(a,b)c(a,a,b[b]),x,{})
```

[Attempt This Online!](https://ato.pxeger.com/run?1=m72waMG6pMy8xKLKkvxSEGW7tLQkTdfiplKMRoVmUGpKaXKqRoxGok6SZjKQBNLRSbGaOhU61bWaUJXKKPo1KmyTNQx0DHQMEVATqnTBAggNAA)

Input is a vector of binary digits; fold over (```Reduce```) this from the left, starting with an empty vector (```NULL```), at each step duplicating whatever we've got so far, and appending the new digit if it's a ```1```.