The concept of a pipe operator, %>%, is not new to me and I have always felt comfortable using it for data manipulation especial when I work with data frames. However, very often there are cases where I had to use the base R functions because I didn’t know how to pass the value to the next function by using %>% .

Finally I found the answer from a Linkedin Course “Learning the R Tidyverse” by Charlie Joey Hadley where he explained how to pipe the output from the left side of the operator to the second argument of function in the right side of the operator.

Periods/full stops play a significant role in pipe expressions.

When the left-hand side of the pipe does not belong in the first argument in the right-hand side of the pipe, it needs to be inserted somewhere else. That’s what a period allows you to do.

Please see the example below:

library("praise")
library("tidyverse") # required package for the pipe operator

data <- c(1, 3, 5, 7, 11, 13, 17)

rep(praise(), 10) # replicate 10 times of the praise

rep(praise(), mean(diff(data))) # replicate mean(diff(data)) number of times

# we want to pipe the mean(diff(data)) into the rep() function, by using period after the comma.

# the period will suck in the left-hand side of the pipe away from the first argument into the second argument.
data %>% 
  diff() %>% 
  mean() %>% 
  rep(praise(),.)

Extracting data from data frames as vectors

# we have a data frame called 'midwest' and we select column 'state'. We then ask for the unique values of the state column. 
midwest %>% select(state) %>% unique() # return a table/data frame

# then pipe that into the expression.[[1]]
midwest %>% select(state) %>% unique() %>% .[[1]] # first column from that data frame as a vector
LS0tDQp0aXRsZTogIlBpcGVzIGFuZCBvdGhlciBhcmd1bWVudHMiDQphdXRob3I6ICJZYW4iDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGUgY29uY2VwdCBvZiBhIHBpcGUgb3BlcmF0b3IsICU+JSwgaXMgbm90IG5ldyB0byBtZSBhbmQgSSBoYXZlIGFsd2F5cyBmZWx0IGNvbWZvcnRhYmxlIHVzaW5nIGl0IGZvciBkYXRhIG1hbmlwdWxhdGlvbiBlc3BlY2lhbCB3aGVuIEkgd29yayB3aXRoIGRhdGEgZnJhbWVzLiBIb3dldmVyLCB2ZXJ5IG9mdGVuIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBJIGhhZCB0byB1c2UgdGhlIGJhc2UgUiBmdW5jdGlvbnMgYmVjYXVzZSBJIGRpZG4ndCBrbm93IGhvdyB0byBwYXNzIHRoZSB2YWx1ZSB0byB0aGUgbmV4dCBmdW5jdGlvbiBieSB1c2luZyAlPiUgLiANCg0KRmluYWxseSBJIGZvdW5kIHRoZSBhbnN3ZXIgZnJvbSBhIExpbmtlZGluIENvdXJzZSAiTGVhcm5pbmcgdGhlIFIgVGlkeXZlcnNlIiBieSBDaGFybGllIEpvZXkgSGFkbGV5IHdoZXJlIGhlIGV4cGxhaW5lZCBob3cgdG8gcGlwZSB0aGUgb3V0cHV0IGZyb20gdGhlIGxlZnQgc2lkZSBvZiB0aGUgb3BlcmF0b3IgdG8gdGhlIHNlY29uZCBhcmd1bWVudCBvZiBmdW5jdGlvbiBpbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgb3BlcmF0b3IuIA0KDQojIyMgUGVyaW9kcy9mdWxsIHN0b3BzIHBsYXkgYSBzaWduaWZpY2FudCByb2xlIGluIHBpcGUgZXhwcmVzc2lvbnMuDQpXaGVuIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiB0aGUgcGlwZSBkb2VzIG5vdCBiZWxvbmcgaW4gdGhlIGZpcnN0IGFyZ3VtZW50IGluIHRoZSByaWdodC1oYW5kIHNpZGUgb2YgdGhlIHBpcGUsIGl0IG5lZWRzIHRvIGJlIGluc2VydGVkIHNvbWV3aGVyZSBlbHNlLiBUaGF0J3Mgd2hhdCBhIHBlcmlvZCBhbGxvd3MgeW91IHRvIGRvLg0KDQpQbGVhc2Ugc2VlIHRoZSBleGFtcGxlIGJlbG93Og0KDQpgYGB7ciBvdGhlcl9hcmd1bWVudH0NCmxpYnJhcnkoInByYWlzZSIpDQpsaWJyYXJ5KCJ0aWR5dmVyc2UiKSAjIHJlcXVpcmVkIHBhY2thZ2UgZm9yIHRoZSBwaXBlIG9wZXJhdG9yDQoNCmRhdGEgPC0gYygxLCAzLCA1LCA3LCAxMSwgMTMsIDE3KQ0KDQpyZXAocHJhaXNlKCksIDEwKSAjIHJlcGxpY2F0ZSAxMCB0aW1lcyBvZiB0aGUgcHJhaXNlDQoNCnJlcChwcmFpc2UoKSwgbWVhbihkaWZmKGRhdGEpKSkgIyByZXBsaWNhdGUgbWVhbihkaWZmKGRhdGEpKSBudW1iZXIgb2YgdGltZXMNCg0KIyB3ZSB3YW50IHRvIHBpcGUgdGhlIG1lYW4oZGlmZihkYXRhKSkgaW50byB0aGUgcmVwKCkgZnVuY3Rpb24sIGJ5IHVzaW5nIHBlcmlvZCBhZnRlciB0aGUgY29tbWEuDQoNCiMgdGhlIHBlcmlvZCB3aWxsIHN1Y2sgaW4gdGhlIGxlZnQtaGFuZCBzaWRlIG9mIHRoZSBwaXBlIGF3YXkgZnJvbSB0aGUgZmlyc3QgYXJndW1lbnQgaW50byB0aGUgc2Vjb25kIGFyZ3VtZW50Lg0KZGF0YSAlPiUgDQogIGRpZmYoKSAlPiUgDQogIG1lYW4oKSAlPiUgDQogIHJlcChwcmFpc2UoKSwuKQ0KYGBgDQoNCiMjIyBFeHRyYWN0aW5nIGRhdGEgZnJvbSBkYXRhIGZyYW1lcyBhcyB2ZWN0b3JzDQoNCmBgYHtyIHBpcGVfdmVjdG9yfQ0KIyB3ZSBoYXZlIGEgZGF0YSBmcmFtZSBjYWxsZWQgJ21pZHdlc3QnIGFuZCB3ZSBzZWxlY3QgY29sdW1uICdzdGF0ZScuIFdlIHRoZW4gYXNrIGZvciB0aGUgdW5pcXVlIHZhbHVlcyBvZiB0aGUgc3RhdGUgY29sdW1uLiANCm1pZHdlc3QgJT4lIHNlbGVjdChzdGF0ZSkgJT4lIHVuaXF1ZSgpICMgcmV0dXJuIGEgdGFibGUvZGF0YSBmcmFtZQ0KDQojIHRoZW4gcGlwZSB0aGF0IGludG8gdGhlIGV4cHJlc3Npb24uW1sxXV0NCm1pZHdlc3QgJT4lIHNlbGVjdChzdGF0ZSkgJT4lIHVuaXF1ZSgpICU+JSAuW1sxXV0gIyBmaXJzdCBjb2x1bW4gZnJvbSB0aGF0IGRhdGEgZnJhbWUgYXMgYSB2ZWN0b3INCg0KYGBgDQo=