Sunday 21 August 2016

Fall Tune Up for Distributors

Let’s face it, summer time is filled with distractions.  Our
customers are distracted; they have vacations, kids playing Little League, golf leagues, cabins in the woods, lawns to mow and who knows what else.  This distraction is contagious.  Being people too, distributor folks get caught up in all the summer stuff. 

Sometime around September 1st, we snap out of our summer induced behavior and put our noses to the grindstone.  For the next week or so, we are going to talk about a few fall tune-ups for distributors.  Think summer end elixir for a better year end. 

If ever you planned to institute a new habit, this is the time.  For the next four minutes, let’s think about selling time.  We’ll ask a few questions:  How much time do our salespeople spend selling?  What distracts them? How might we put the beauty back into the process?

How much time do salespeople spend actually selling?
Based on observations of hundreds of salespeople and dozens of distributors, the answer is simple: not much.  Without getting into anything earth shattering, we can subtract vacation, holidays, training sessions, sales meetings and sundry interruptions.  Vacation, holidays and personal time for life issues alone typically account for nearly 8 percent of the work year.  Let’s add in a few sales meetings, training sessions, and off-site vendor meetings and we could easily come to some interesting conclusions.  First, let’s assume salespeople are paid to “sell,” yet they’re away from their job for more than 10 percent of the time.  Secondly, the seller spends just one day per week doing administrative “paperwork.”  We’ve somehow managed to drop time spent selling by another 15 or 20 percent.

 This brings the total time engaged in face-to-face selling activities down to 70 percent of the real year.  This is the functional equivalent of being paid regular wages for an 8 to 1:30 workday.  But those are just the mechanics.  For the next five minutes, let’s look at how we drop from 70 percent to the actual number, which experts have pegged at around 25 percent.

Salespeople, please continue to read…
This is not about sales department slacking.  While we may touch up against the need for planning, scheduling and effective use of time, this article isn’t about calendar management.  Instead, it’s about sales management.

What takes salespeople away from selling?
Operational issues are a major source of sales distraction.  Think back to the last time you went out with a member of your sales team.   Was a portion of the sales call devoted to discussing shipping errors, delivery issues or a poorly handled customer service issue?  Nothing sours a well-planned sales call like a little back peddling early in the meeting.  It’s hard to sell “ease of doing business” when you just cost your customer money based on something easily avoidable.

What’s worse for many distributor managers is this:  Most lack the data to determine if their growth problems are based on a sloppy warehouse and a crappy customer service department or an ineffective sales team.  Some wonder if customer issues with missed delivery dates or inaccurate shipments are just part of the “distributor sales game.”  With this in mind, one would wonder if gathering administration and logistics data shouldn’t be a standard procedure for every distributor.   We think it should be.

Pricing situations can spoil a selling situation.  While we could argue that price negotiations are an integral to selling, I believe we need to explore a couple of points. 

First, unless you have accurate pricing information loaded into your ERP system, just arriving at a valid price provides a selling distraction.  Each transaction requires additional research.  Every time a salesperson quotes an amount to a customer, a dozen questions flash through their mind.  Is the price right?  What price did we use last time?  Could someone in customer service have priced this differently?   Where do we sit compared to the competition?  And more.

Not only is time spent researching for the right price, we also create doubt and uncertainty.  When the salesperson guesses incorrectly, it creates additional distraction.  The salesperson spends even more precious selling time fixing the issue.

Secondly, when no selling process exists, the salesperson is stuck negotiating every single sale.  To summon up something said by my friend and pricing expert David Bauders of Cleveland-based Strategic Pricing Associates, you never see a dog beg just once.  His point is simple: If you give your dog table scraps one time, they turn into constant beggars.  When our salespeople lower their prices once, the customer becomes conditioned to request a lower price on each opportunity.  Negotiations take away from, you guessed it, selling. 

Unless the distributor employs a full-on pricing process, salespeople are left to determine price.  Customers bombard them with the message “your price is too high,” and it ruins the selling moment.  This constant bombardment of negative energy causes many sellers to lose perspective on the value their organization provides to customers.   Sales experiences, without the presence of value-creating solutions, are about as exciting as the paint page of the 1964 Sears catalog.  



Management teams syphon selling time on a regular basis.  Earlier, we listed all of the mundane consumers of time (vacation, sales meetings and so on,) but many times managers hurt their own cause by not thinking of the sales team when they set up meetings.  Any meeting scheduled for midday consumes the better part of a whole day, even if it only lasts an hour.  This is especially true when ending times are not strongly enforced. 

The office is not the salesperson’s friend, specifically, the practice of starting a business day in the office.  It puts the kibosh on selling efficiency.  Nothing cuts into sales time like being readily available at the launch of a business day.  Here’s why.

It’s natural for customers to ask for their salesperson on some of the most routine issues.  The sales DNA steers the seller toward helpful behavior.   They get wrapped up in lots of trivial tasks that should be funneled to someone in customer service.  What’s worse is this: Customer service people often don’t understand it’s their job to get the salespeople outof the office.  I have seen inside salespeople and customer service representatives complain when sellers refuse to handle incoming calls.  This quickly becomes a management issue.  You cannot afford for salespeople to handle things like order entry, stock checks and routine expedites.

How do we ramp up the real selling activities?
It’s a management-driven process.  First, you must ensure the distractions are removed.  Distributor selling today is a team sport.  Some of these are not directly tied to outside salespeople.  Metrics and measures must be inserted throughout the whole of the customer experience. 

You must develop performance expectations for all components of the selling machine.  Here’s a fact: Many sales types confuse routine reactive care with selling.  They feel good at the end of a long day of handling administrative tasks and minutia associated with their customers.  Customer care is important, but it’s not the best use of their time.  If they must step aside from real face-to-face selling, something is wrong in another department.

Finally …
I believe in data.  Hand waving and opinions are nice.  No discussion of politics, religion or Olympic figure skating should go without them.  In our world, I’ll take data.  I regularly require my clients to take inventory of their day.  How did they really spend their time?

Here’s how it works.  I ask every salesperson to log their day
in 15-minute increments.  Simply put, I want to know what they did from 8:00 to 8:15, 8:15 till 8:30 and so on throughout the day.  If they were talking on the phone, who were they speaking to and about what?  If they were at their desk, what task was at hand?

At the end of the week, I ask for tabulations.  How much time was spent in each of 10- activities?   I insist on real-time logs, but leave the tabulation to the seller.  The end result is always eye opening for the seller and their manager.   Most can radically improve their sales effectiveness.  Why?  Well, if your sales time is hovering at around 25 percent, just a few minutes a day can ramp you to 30 or 40 percent.  That’s a big jump.


If you would like to see the 12 activities we tie to times, drop me a line.  You can log the time spent under planning and process improvement.

Tuesday 16 August 2016

SUMIF Function : How to use SUMIF Formula in Excel

Hello Everyone, Today you'll find How to use SUMIF Function in Excel. SUMIF Function used to add the specified cells based on the single or multiple supplied criteria. Sometimes we require conditional sum in Excel then we can use this function to add all numbers in a particularly given range. SUMIF function based on the three-parameter- range, criteria, and sum_range. Every parameter has own functionality and also depends on SUMIF multiple criteria.

SUMIF Function Syntax

The SUMIF Function in Excel has the following syntax:
=SUMIF(range, criteria, sum_range)
  • Range: The range of cells calculated by criteria. It is required entity mean required for the function to work. Cells in every range must be numbers, names, arrays, references that include numbers and not contain blank and text value.
  • Criteria: Criteria is a condition that must be met for a cell and it is also required entity. The criteria should be a number, expression, cell reference, text or function. It can be simple or multiple criteria. 
  • Sum_range: sum_range is the range of cells that sum together. It is optional means, not a mandatory entity. If you skip this entity then uses range as a sum_range. 

How to Use SUMIF Function

Excel SUMIF Function used to calculate the sum of the cells in a range that be specified under certain criteria.  Here we'll discuss this function with an example of the sales table.
                                 SUMIF function, SUMIF formula, SUMIF multiple criteria, SUMIF data range
If you want to find the total sold quantity from above table then you can simply find using SUM function like =SUM(B6:B11) and get the result is 26. But you want to calculate total sales amount with criteria that you want to add all sales amount where the sales quantity is 5 and greater than 5. For that we need to remind three things:
  • The first requirement is the range. In this example, the first requirement is B18:B23 and we have the range of sold quantity of every day. It will check if they meet the criteria.
  • The second parameter is criteria or user condition like we want to add all sales amount where the sales quantity is greater and greater than 5. For this example, the second parameter is ">=5".
  • The third requirement is sum_range. In this example, the third parameter is C18:C23. SUMIF function adds all the sales amount in C18:C23 range if meet the criteria.
After applying SUMIF formula in excel worksheet, it returns the outcomes 2140 means the total sales amount is 2140 where the sales quantity is greater than or equal to 5.


Conclusion
Thus, in this post, you learn How to use SUMIF Formula in Excel. We hope you'll like this post. If you like this article then you can share with your friends, colleagues, and your relatives. We'll update the information on the regular basis. You can also share this post on facebook, twitter, Instagram or other social media website. If you have any query regarding this post then you can freely write in the comment section. We'll inform you as soon as possible.

Sunday 14 August 2016

A Few Thoughts on The Reactionary Sales Model

Talk to any sales manager and they will tell you they want their team to be proactive.  Proactive as in sales calls, targeting, prospecting and product introductions.  Planning and setting detailed customer-centric goals is also viewed as proactive.  Sales managers preach proactivity.  Detailed studies of distributor salespeople, however, reveal a lot of folks who are anything but proactive.  In spite of the directives from their managers, a lot of these guys seem happy in their roles.

Defining Reactionary Sales…
A good many knowledge-based distributor salespeople have quietly slipped into what I call the reactionary sales model.  Here is the premise of their system:
·         The seller becomes engaged with the customer.  Sometimes this is an inherited relationship, other times, it builds gradually over time as the seller proves their worth as a provider of sound advice, support and technical assistance. The seller builds a level of trust and becomes one of those called in to assist in problem solving and solution building.
·         The seller becomes available on demand.  The deeper the relationship, the more available the seller becomes as a source of advice and assistance. It is not uncommon for sellers working in this mode to drop whatever proactive plans they may have developed to run to their customer’s location at a moment’s notice.  This activity is typically rewarded emotionally with appreciative words and with a regular stream of orders.
·         The seller develops deep loyalties with customers.   As loyalty builds, the customer begins moving business to the salesperson’s company and business grows.

Sounds pretty good so far….
But there is more, maybe even vindication.  A recent study of engineers in the OEM side of our business reveals much about the way our industry sells.  Three things are made clear in the study:
1.      Engineers prefer to request information – “don’t call us we’ll call you”.
2.      Once a salesperson is established as a source of information – they call often.
3.      Local and Regional Distributors are viewed as better sources of information than National Chains (something we have always known but didn’t have the data to prove.)






But there are problems…
The story doesn’t end with “they all lived happily ever after” because there are some issues standing in the way of great business.  While time and the nature of this post don’t lend themselves for a detailed study, we should touch on the issues.

·         This model takes time.  Engaging with customers, proving yourself and building trust take time; probably measured in years.  How long can a salesperson wait for business to come? 
·         Distributors lose customers by attrition.  Depending on the expert, between five and ten percent of our customers drop off each year.  We’re not speaking of business lost to competitors; instead customers go out of business, are purchased by another organization or move to another location.  When this happens, it takes a long time for a reactive guy to replenish their customer base.
·         Reactive salespeople are slow to introduce new products and technologies.  When salespeople operate in the reactive mode, they wait for the customer to request information.  Since the customer has someone else providing assistance with the new line of technology, the time to introduce new products is painfully slow (years.)
·         Reactive salespeople struggle to justify which account receives their high quality reactive service.  Oftentimes, reactive salespeople peak out early.  One of the main causes is they run out of time.  This level of service takes time.  If they don’t “justify” their time against customer potential or business volumes, they get consumed by helping accounts which cannot provide the necessary volume to fuel their business.  Since the emotional reward can be high from small accounts, who thank them profusely for their assistance, they struggle to prioritize their time. 

By now the point should be clear, the reactive model works but does not align itself with the goals of most distributors.  Expansion into new product technologies is hampered and organic growth is slow (even if arguably steady.)

Improving the situation…
If your team is overloaded with reactive mode sellers, you must answer this lucky seven list of questions:

1.      How can we speed up the relationship process?  We’ve determined the reactive seller is good once a relationship is built.  But, they need help with jump starting the relationship.
2.      How can we help focus their efforts?  Most sellers don’t track their time, even though CRM Systems are good tools.  If we can help them understand the value of their time, they may refocus energies on accounts with greater potential.
3.      Can we develop tools for introducing new products?  Training is the new marketing.  Are you exploring all the opportunities to increase your training portfolio?
4.      Are add on products well understood?  If the salesperson is assisting the customer with a solution, do they understand the nuances of expanding the products by providing a bigger piece of the solution?
5.      Does the reactive seller know how to leverage existing contacts to expand their customer contact base?  Since the time to build trust and establish a relationship is long, we need to find ways to leverage the relationship.  Does the seller ask his contacts for referrals within their company?  Does the reactive guy understand the importance of knowing everyone within their account?
6.      Are negotiation tools part of the reactive seller’s skillset?  Long sales cycle… check.  High service… yep.  Products customized to the customer’s needs… inherently clear.  If the seller has not been trained on negotiation tactics, there is a very good chance you are missing out.  Research indicates negotiation training is not part of the distributor vocabulary.  I have seen SPASigma’s training and believe the reactive salesperson needs all of the advantages offered.
7.      Should a reactive seller be paid the same commission as a “rain making” sales guy?  This one is a lightning rod, but I am convinced there is a difference.  Plus, reactive sellers don’t bring the same level of value to the business. 

Finally….
I’ve made some pretty brash comments.  I am sure some will disagree.  If I’ve upset you, send me a note.  Heck, post it right hear for everyone to read.  I look forward to hearing back from you.  Who knows, you might receive the River Heights Consulting Grand Prize: a postcard from Iowa.


By the way… I made reference to SPASigma’s fabulous distributor-centric Negotiation Training.  Founded by Distributor Pricing Expert David Bauders of Strategic Pricing Associates.  David has helped 500 distributors grow their gross margin (typically around 2 points) through a scientific analysis of price sensitivity and customer type.  SPASigma moves the needle forward again.  There’s a five minute video at www.SPAsigma.com.  

Sunday 7 August 2016

Technology for the Knowledge-based Distributor

Online order entry seems to be the next big thing in distribution.  Reading the distributor trade press, we are deafened with calls urging distributors to invest in the technology.  For some, the idea makes sense.  But before whipping out the wallet, let’s put some thought into the subject. 

All of these experts trot out Amazon, W.W. Grainer and a handful of online retailers as the poster children of how online order entry has changed our world.  No doubt about it, these
folks are growing their business at the expense of brick and mortar based organizations.  True confessions here, I am a dedicated Amazon shopper; buying everything from books to dog treats.  That being said, we aren’t talking apples to apples here.

I believe most solutions oriented distributors cannot afford to make a play in the “internet store” business.  Here’s how I came to this conclusion:

·         Most solution providing distributors operate within a prescribed territory (often referred to as an Area of Prime Responsibility or APR by their supply partners.)  Pricing and other support is not extended to customers outside of this APR.  While Google provides search engine tools capable of attracting only local business, the cost and effort is higher than most distributors care to pay.

·         The big guys are investing massively in the technology.  There have been reports of Grainger spending over $300 million on the technology; Amazon has probably spent even more.  There is no way the typical, small distributor can spend that kind of money. 

·         Distributors who fall closer to our model have made large investments and report sales produced still represent less than five percent of their business. 



Complicating matters, many distributors have wrongly assumed once they invested in an internet store, the investment was over.  Keeping the store updated, working properly and viable requires an ongoing investment which provides little return to their organization.  For solution-based distributors the investment made in this technology is a poor choice because the outlay has no return for the conceivable future and moneys invested distract from investing in their real competitive strength in the market – better solutions for customers. 

Pushing our thoughts further, let’s think the concept of the online store from a couple of angles.

First, let’s consider some distributor comments related to the subject.  A few manufacturers have created portals designed to make the distributor connection to their manufacturing plants more efficient.  Wholesalers using these portals are thrilled by the ability to check stock, follow-up on shipments, order literature and track programs.  They don’t seem all that thrilled about entering orders; line item by line item into the system.  Instead, they complain about the duplication of efforts and time wasted.

The driving issue is the manual transfer of data from their own business system to the manufacturer’s business system.  Thinking about the order, the distributor must create the order on their internal system then turn around and repeat the process; two sets of key strokes, twice the order time invested.  In many cases, the orders for “reoccurring” stock products, which have been purchased in the past, are generated automatically to save admin time.  The newfangled portal created as a time saver is actually a burden.

Let’s shift gears and consider customer transactions, where the situation is similar.  They have invested in company-wide ERP systems which track the parts coming into their organization.  In the case of repairs and orders for parts already in their system, moving to an online store only creates the same duplication of effort that distributors find so disturbing.  If the order involves a solution-driven product, they most likely need the kind of support which cannot be delivered via an Amazon-esque system.  So any investment in the technology does little to move the distributor forward.

Technology still provides advantage…
If this article appears to be a technology downer, it’s not.  I do believe distributors need to make use of emerging technology, just not the type described.  There is a technology worth exploring; technology with a payback for the distributor. 

What would happen if customer orders were automatically entered into the distributor’s business system thus eliminating a great deal of the manual transfer of data from customer purchase orders to the distributor’s business system?  Such technology exists today. 

For the past couple of decades distributors and others have experimented with Optical Character Recognition (OCR) software.  At River Heights Consulting, we gave it a try seven or eight years ago.   We purchased a special scanner designed to enter business cards into our system in order to streamline the entry of information collected at various trade shows and meetings.  The problem was, it didn’t work all that well.  As I’m sure you’ve also noticed, every company uses
Not so easy to scan
different layouts and fonts and provides different types of information.  Each card required human interface and some analysis, ultimately wasting more time.  We abandoned the system.  Others have experimented with the technology for order entry and discovered the same issues.

A high-tech company based in Vancouver, BC has harnessed the power of cloud computing and the internet to develop a product called Conexiom.  Using a patented algorithm, the Conexiom system allows incoming customer purchase orders to be pushed to the cloud for processing, then automatically fed back into the distributor’s business system.  Manual entry of routine orders is eliminated, thus freeing distributor personnel for more valuable tasks – like assisting with the solution driven stuff.

For a system to work, it has to be right something like 99 percent of the time.  Unlike the issues described with OCR data transfer, the Conexiom product delivers accuracy approaching 100 percent.  Sound too good to be true?  Prior to writing this post, I checked out the experience of a number of distributors already using the system.  It’s real.  It works.

The implications of the technology…
Experience dictates, some of the best technical resources in the distribution world spend an inordinate amount of their time entering orders.  It’s almost painful to watch them go through their unique “hunt and peck” typing sessions.  Sometimes, important customer calls go to voicemail while this typing takes place.  In very progressive distributors (who are large enough to handle the extra people,) orders arriving via email or fax are forwarded to a customer service person who is a better typist, but even they sometimes struggle with long catalog strings.  The Conexiom technology negates the need for this typing with routine orders.

The technology is cloud-based and scalable making the investment for a small distributor reasonable.  Unlike many processes where “the computer eliminates labor in one department but any savings is offset by new computer resources,” there is no need for new hardware or extra IT manpower.  (Again, this is based on the cloud and internet based technology.)

Unless it makes distributors money, why do it?
We have worked out the model for a couple of distributors using their real costs of people and the payback is strong - possibly one of the best investments in distribution.  This is one of the emerging technologies which will level the playing field and give solution-based distributors a competitive advantage. 


If you would like to talk about this or any other emerging technologies, drop me a line or give me a call.  This bit of information came to me by way of a reader, who actually wanted us to share with the public.  Based on all that we have discovered, it’s not going to be a secret for long.  

Friday 5 August 2016

Free Excel Templates - How to use Spreadsheet Templates

Hello Everyone, Today You'll find How to use Spreadsheet Templates in MS Excel. A template is a predesigned worksheet that can use to create a new worksheet with the same formatting. Excel Templates is a powerful part to create a workbook and great way to save a lot of time. We use Excel Templates to create a calendar, annual budget, invoices, sales report, inventory, dashboards. Predesigned Spreadsheet Templates works when you need to create the same worksheet over and over so you can save your own created templates and can use further. 

How to Create Template in Excel

If you create your own template in excel then you can save it in the Template folder so that you can use the Template further to create an excel worksheet. To create a Template, you have to perform following steps:

  • Create a Workbook that uses as a template
  • On the File Tab, Click Save As.
excel templates, free spreadsheet templates, templates in excel, create excel templates, templates excel
  • Enter the File Name that you want to use for the template.
  • Select Excel Template from the Save as type box.
  • Click on Save Button.
Excel automatically create a template in the Template folder and available when you want to use it to create a new workbook.

Use an Existing Template to Create a New Workbook

If you have any excel template in the excel template folder and want to use existing template in a new workbook then you need to know how to use free excel spreadsheet template in the new workbook. For use existing template follow some steps as following:
  • On the File Tab, Click New.
  • To choose a Template from Available Templates,do following:
    • To select the Recently used Template, Click Recent Templates then under Recent Templates, Double-Click on the Template that you want to use in your workbook.
    • To select the Sample Template that already exist in excel, Click Sample Templates and under Sample Templates, Double-Click on the Template that can use in your workbook.
    excel templates, free spreadsheet templates, templates in excel, create excel templates, templates excel
    • To Select My Templates that created by you, Click My Templates then under My Templates, Double-Click on the Template that you want to use in your workbook.
    • To Select the Template of another workbook, Click New from existing then Double-Click on the workbook that you want to use.

    Conclusion:
    Thus, in this post, you learn how to create an Excel Workbook with a Template and some required information to use the excel spreadsheet templates in another workbook. You can create a worksheet based on an existing template or also create your own templates which can use further to create another excel workbook. If you like this post then you can share with your friends and colleagues. We'll update the information on the regular basis. I hope you'll like this post. You can also share it on facebook, Instagram, Google+ or other social media website. If you have any query or suggestion  regarding this post then you can freely write in the comment section. We'll revert back to you as soon as possible.

    Tuesday 2 August 2016

    Learn how to create Variables, Vectors, List, Matrices and Data frames in R language

    #------------------------------Variables----------------------------------


    # A variable is like a folder with a name on the front. You can place something inside the folder,
    # look at it, replace it with something else, but the name on the front of the folder stays the same.

    # To assign a value to a variable we use the assignment command <-.
    # You can give a variable any name made up of letters, numbers, and .
    # or _, provided it starts with a letter, or . then a letter. Note that names are case sensitive

    x<-1000
    x

    # To display the value of a variable x on the screen we just type x.
    # This is in fact shorthand for print(x).
    # Later we will see that in some situations we have to use the longer format, or its near equivalent show(x)

    print(x)
    show(x)
    (1 + 1/x)^x
    (y <- (1 + 1/x)^x)

    # In common with most programming languages,
    # R allows the use of = for vari- able assignment, as well as <-.

    x <-200
    x=300
    x

    a <-3

    a

    b <- sqrt(a*a+3)

    b <- sqrt(a*a)

    b

    # If you wouldnt get list of variables that you defined particular session you can list them all using

    ls()

    # ---------------------------Functions---------------------------------------------

    # In mathematics a function takes one or more arguments (or inputs)
    # and pro- duces one or more outputs (or return values).

    x <- c(1,27,56,70)
    x
    x[4]
    y <- x[4]
    y

    x[5]
    # To call or invoke a built-in (or user-defined) function in R you write the name of the function
    # followed by its argument values enclosed in parentheses and separated by commas.

    1:100

    seq(from = 2, to = 9, by = 2)

    #Some arguments are optional, and have predefined default values, for example, if we omitbythen R usesby=1:

    seq(from = 1, to = 9)

    # To find out about default values and alternative usages of the built-in function fname,
    # you can access the built-in help by typing help(fname) or ?fname.

    help("sqrt")

    ?sqrt

    #Every function has a default order for the arguments.

    # If you provide arguments in this order, then they do not need to be named

    # but you can choose to give the arguments out of order provided
    # you give them names in the format argument_name = expression.

    seq(1, 9, 2)

    seq(to = 9, from = 1)

    seq(by = -2, 9, 1)

    x <- 9
    seq(1, x, x/3)

    # ---------------------------------------Vectors -------------------------------------

    # A vector is an indexed list of variables. You can think of a vector as a drawer in a filing cabinet:
    # the drawer has a name on the outside
    # and within it are files labelled sequentially 1,2,3,... from the front.

    # In fact, a simple variable is just a vector with length 1 (also called atomic).
    # To create vectors of length greater than 1, we use functions that produce vector- valued output.

    # There are many of these, but the three basic functions for constructingvectorsarec(...)
    # (combine); seq(from,to,by)(sequence); and rep(x, times) (repeat)

    x <- c(1,2,3,4,5,6)

    getwd()
    x
    x+1
    mean(x)

    median(x)

    y <- read.csv(file = "4c_data.CSV" )

    head(y)

    mean(y$Sales)

    help("var")

    var(x)

    x[1]
    x[9]

    (x <- seq(1, 20, by = 2))

    (y <- rep(3, 4))

    (z <- c(y, x))

    z <- c(x, y)   #without paranthesis, you have to again type z

    z

    (x <- 100:110)

    i <- c(1, 3, 2)

    j <- c(-1, -2, -3)

    x[i]
    x[j]

    # It is possible to have a vector with no elements. The function length(x) gives
    # the number of elements of x.

    x <- c()  

    length(x)

    # Algebraic operations on vectors act on each element separately, that is ele- mentwise.

    x <- c(1, 2, 3)
    y <- c(4, 5, 6)

    x*y

    x+y

    y^x

    # When you apply an algebraic expression to two vectors of unequal length,
    # R automatically repeats the shorter vector until
    # it has something the same length as the longer vector.

    c(1, 2, 3, 4) + c(1, 2)

    (1:10)^c(1, 2)

    2 + c(1, 2, 3)

    2 * c(1, 2, 3)

    (1:10)^2

    # R will still duplicate the shorter vector even if it cannot match the longer vector with a whole number of multiples,
    # but in this case it will produce a warning.


    c(1,2,3) + c(1,2)

    # A useful set of functions taking vector arguments are sum(...), prod(...), max(...),
    # min(...), sqrt(...), sort(x), mean(x), and var(x).
    # Note that functions applied to a vector may be defined to act element wise or
    # may act on the whole vector input to return a result:

    sqrt(1:6)

    mean(1:6)

    sort(c(5, 1, 3, 4, 2))

    sort(c(20,40,50,20,90,70), decreasing = TRUE)

    sort(c(20,40,50,20,90,70), decreasing = TRUE)

    # --------------------   mean and variance -------------------------------------

    x <- c(1.2, 0.9, 0.8, 1, 1.2)

    x.mean <- sum(x)/length(x)

    x.mean - mean(x)

    x.var <- sum((x - x.mean)^2)/(length(x) - 1)

    x.var - var(x)

    # -----------------------  simple numerical integration  ------------------------

    dt <- 0.005
    t <- seq(0, pi/6, by = dt)
    ft <- cos(t)
    (I <- sum(ft) * dt)
    I - sin(pi/6)

    # In this example note that t is a vector, so ft is also a vector, where ft[i] equals cos(t[i])


    # ---------------------- exponential limit -----------------------------------------


    x <- seq(10, 200, by = 10)
    y <- (1 + 1/x)^x
    exp(1) - y

    plot(x, y)

    # ------------------------ Finding Type --------------------------------------------

    q <-  numeric(10)

    typeof(q)

    a <- "dscienze"

    typeof(a)

    b <- c("Hello", "World")
    b
    typeof(b)

    b <- c("Hello", 4)

    b

    typeof(b)

    a = character(20)

    a

    # --------------------- Factors --------------------------------

    setwd("~/Documents/R-Files")
    getwd()

    ex <- read.csv("R-Class Folder/students.csv")
    ex
    summary(ex$treatment)

    ex$treatment

    summary(ex$low)

    ex1 <- factor(ex$low)
    ex1
    summary(ex1)

    # --------------------- Missing Values ----------------------------
    a <- NA             # assign NA to variable A

    is.na(a)            # is it missing?

    a <- c(11,NA,13)    # now try a vector

    is.na(a)            # is it missing?


    mean(a)                      # NAs can propagate

    mean(a, na.rm = TRUE)        # NAs can be removed  -- mean(a, na.rm = TRUE, NULL=TRUE)

    # We also mention the null object, called NULL,
    # which is returned by some func- tions and expressions.
    # Note that NA and NULL are not equivalent.
    # NA is a place- holder for something that exists but is missing.
    # NULL stands for something that never existed at all.

    # ---------------------- Expressions and assignments ----------------

    #In R, the term expression is used to denote a phrase of code that can be executed.

    seq(10, 20, by = 3)

    4

    mean(c(1, 2, 3))

    1>2

    # If the evaluation of an expression is saved, using the <- operator,
    # then the com- bination is called an assignment. The following are examples of assignments.

    x1 <- seq(10, 20, by = 3)
    x2 <- 4
    x3 <- mean(c(1, 2, 3))
    x4 <- 1 > 2
    x4

    # ---------------------Logical expressions ---------------------------------

    # A logical expression is formed using the comparison operators <, >, <=, >=, == (equal to),
    # and != (not equal to); and the logical operators & (and), | (or), and ! (not).
    # The order of operations can be controlled using parentheses ( ).
    # Two other comparison operators, && and ||

    # The value of a logical expression is either TRUE or FALSE.
    # The integers 1 and 0 can also be used to represent TRUE and FALSE, respectively

    c(0, 0, 1, 1) | c(0, 1, 0, 1)

    xor(c(0, 0, 1, 1), c(0, 1, 0, 1))

    c(0, 0, 1, 1) & c(0, 1, 0, 1)

    # One way of extracting a subvector is to provide an subset as a vector of TRUE/FALSE values,
    # the same length as x.

    x <- 1:20
    x%%4 == 0
    12%%4

    (y <- x[x%%4 == 0])

    # Another example

    x <- c(1, NA, 3, 4)
    x>2
    x[x > 2]
    subset(x, subset = x > 2)

    # If you wish to know the index positions of TRUE elements of a logical vector x, then use which(x).
    x <- c(1, 1, 2, 3, 5, 8, 13)
    which(x%%2 == 0)  #  remember Position not the value


    # ---------------------Sequential && and || ---------------------------------

    # The logical operators && and || are sequentially evaluated versions of & and |, respectively.

    # Suppose that x and y are logical expressions. To evaluate x & y, R first eval- uates x and y,
    # then returns TRUE if x and y are both TRUE, FALSE otherwise.


    # To evaluate x && y, R first evaluates x. If x is FALSE then R returns FALSE without evaluating y.
    # If x is TRUE then R evaluates y and returns TRUE if y is TRUE, FALSE otherwise.




    x <- 0
    x * sin(1/x) == 0

    (x == 0) | (sin(1/x) == 0)

    (x == 0) || (sin(1/x) == 0)

    # Note that && and || only work on scalars, whereas & and
    # | work on vectors on an element-by-element basis.

    # A scalar quantity is a one dimensional measurement of a quantity,
    # like temperature, or weight. A vector has more than one number associated with it.
    # A simple example is velocity. It has a magnitude, called speed,
    # as well as a direction, like North or Southwest or 10 degrees west of North



    # --------------------- Matrices ---------------------------------

    # A matrix is created from a vector using the function matrix, which has the form
    # matrix(data, nrow = 1, ncol = 1, byrow = FALSE).

    # and byrow can be either TRUE or FALSE (defaults to FALSE) and indicates
    # whether you would like to fill the matrix up row-by-row or column-by-column,

    # To create a diagonal matrix we use diag(x).
    # To join matrices with rows of the same length (stacking vertically) use rbind(...).
    # To join matrices with columns of the same length (stacking horizontally) use cbind(...).

    (A <- matrix(1:6, nrow = 2, ncol = 3, byrow = FALSE))

    (A <- matrix(1:6, nrow = 2, ncol = 3, byrow = TRUE))

    A[1, 3] <- 0
    A
    A[, 2:3]

    (B <- diag(c(1, 2, 3)))

    # The usual algebraic operations

    # To perform matrix multiplication we use the operator %*%.
    # for example nrow(x), ncol(x), det(x) (the determinant), t(x) (the transpose)
    # solve(A, B), which returns x such that A %*% x == B.
    # If A is invertible then solve(A) returns the matrix inverse of A.

    (A <- matrix(c(3, 5, 2, 3), nrow = 2, ncol = 2))

    (B <- matrix(c(1, 1, 0, 1), nrow = 2, ncol = 2))

    A %*% B  # Matrix Mulitplication

    A * B

    (A <- matrix(c(3, 5, 2, 3), nrow = 2, ncol = 2))

    (A.inv <- solve(A))

    A %*% A.inv

    # --------------------- The Work Space ---------------------------------

    # If you wish to find out if an object is a matrix or vector,
    # then you use is.matrix(x) and is.vector(x).
    # Of course mathematically speaking, a vector is equivalent to a matrix with one row or column
    # but they are treated as different types of object in R
    # To create a matrix A with one column from a vector x, we use A <- as.matrix(x)

    # To create a vector from the columns of a matrix A we use as.vector(A)

    # To list all currently defined objects, use ls() or objects(). To remove object x, use rm(x).
    # To remove all currently defined objects, use rm(list = ls())

    # To save all of your existing objects to a file called fname in the current working directory,
    # use save.image(file = "fname")

    # To save specific objects (say x and y) use save(x, y, file = "fname")

    # To load a set of saved objects use load(file = "fname")

    # which will save your existing objects to the file .RData in the current working directory

    ls()
    save.image(file = "Variables-Class3")
    rm(list = ls())

    ls()

    load(file = "Variables-Class3")
    ls()


    # --------------------- Data Frames ---------------------------------

    # We can create a data frame using the data.frame() function. For example,
    # the above shown data frame can be created as follows.

    x <- data.frame(SN=1:2, Age=c(21,15),Name=c("Ravi","Chandra"))

    x <- data.frame("SN"=1:2,"Age"=c(21,15),"Name"=c("Ravi","Chandra"))

    str(x)    # structure of x

    # Notice above that the third column, Name is of type factor,
    # instead of a character vector. By default,
    # data.frame() function converts character vector into factor.
    # To suppress this behavior, we can pass the argument stringsAsFactors=FALSE.


    x <- data.frame("SN"=1:2,"Age"=c(21,15),"Name"=c("Ravi","Chandra"),stringsAsFactors=FALSE)
    str(x)

    # Many data input functions of R like, read.table(), read.csv(),
    # read.delim(), read.fwf() also read data into a data frame.

    # We can use either [, [[ or $ operator to access columns of data frame.

    x["Name"]    # list

    x$Name

    x[["Name"]]

    x[[3]]

    #  ------------------------- Factors -----------------------


    # Factor is a data structure used for fields that takes only predefined,
    # finite number of values (categorical data).

    x <- factor(c("single","married","married","single")); x

    # if a variable is a factor or not using class() function. Similarly,
    # levels of a factor can be checked using the levels() function

    class(x)

    levels(x)

    # adding levels

    x <- factor(c("single","married","married","single"), levels=c("single","married","divorced")); x

    x <- factor(c("single","married","married","single"))  # knowing structure

    str(x)

    # -------- Accessing like a matrix ---------------

    # Data frames can be accessed like a matrix by providing index for row and column.
    # To illustrate this, we use datasets already available in R.
    # Datasets that are available can be listed with the command library(help = "datasets").

    #  Datasets that are available can be listed with the command library(help = "datasets").

    # We will use the trees dataset which contains Girth, Height and Volume for Black Cherry Trees.
    # A data frame can be examined using functions like str() and head().

    library(help = "datasets")

    str(trees)

    head(trees,n=1)

    head(trees)

    trees

    # Now we proceed to access the data frame like a matrix.

    trees[2:3,]      # select 2nd and 3rd row

    trees[trees$Height > 82,]   # selects rows with Height greater than

    trees[10:12,2]              # which gives the 10 to 12 2nd column that is "Height"

    trees[10:12,3]

    trees[10:12,4]              # Which Returns Null

    # We can see in the last case that the returned type is a vector since we extracted data from a single column.
    # This behavior can be avoided by passing the argument drop=FALSE as follows.

    trees[10:12,2, drop=FALSE]

    x <- data.frame(SN=1:2, Age=c(21,15), Name=c("Ravi","Chandra")); x

    x[1,"Age"] <- 20; x     # replacing age 21 by 20

    #  Replacing Factor value

    levels(x$Name) <-c(levels(x$Name), 'Deepthi')
    x
    x$Name[x$Name == "Ravi"] <- "Deepthi"
    x

    # adding Components

    rbind(x,list(1,16,"Ravi"))    # Rows can be added to a data frame using the rbind() function.

    cbind(x,State=c("NY","FL"))   # Similarly, we can add columns using cbind().

    x$State <- c("NY","FL"); x    # we can also add new columns through simple list-like assignments.

    # Data frame columns can be deleted by assigning NULL to it.

    x$State <- NULL ;x

    x <- x[-1,] ;x




    Tableau 10.0 Features List Item Wise

    This list may change by the time Tableau 10.0 get releases. Just consider these are  current expected features of this version as of now.

    Tableau 10


    Data
    • Cross-database join
    • Google Sheets connector
    • Quickbooks Online connector
    • Marketo connector
    • Cisco Information Server connector
    • MemSQL connector
    • Kognitio connector
    • Notify on extract failure
    • Tableau Online Sync
    Mobile
    • Android
    • Device designer
    • Mobile device management
    Analytics
    • Clustering
    • Custom territories
    • Cross data source filters
    • Highlighter
    • Bar chart improvements
    • Radial distance units
    • Maps data updates
    • Groups in calculations
    • Table calculation updates
    • Level of detail dimensionality
    Web
    • Web authoring
    • Data source analytics
    • Revision history
    • Publish flow
    Enterprise
    • Subscribe others
    • JavaScript API improvements
    • Rest API improvements
    • Web Data Connector 2.0
    • ETL refresh
    • Document API
    • License management
    • Site SAML support in Tableau Server
    • On-demand connections in Tableau Desktop
    • Improved browser performance
    Beauty
    • New look and feel
    • New defaults
    • Workbook formatting
    • Seamless titles

    10 Reasons to work on Tableau 10.0 and Features List

    Tableau 10 includes a brand new look and feel, and a host of new features to help you prep, analyze, and share your insights even faster.
    With respect to the performance I can Tableau 10.0 will much faster than 9.3.5 and it has clear and crisp design. Moreover it is totally responsive.
    1. Cross Database Joins
    Cross Data Joins
    Disparate data can now be friends. Join data from different data sources like Excel and Oracle, and create an integrated data source in Tableau. You can also create a Tableau extract of this data source and publish it.

    2. Tableau Mobile for Android

    android
    Tableau mobile is coming for android phones, it was there for iOS.

    3. Device Designer

    3. Device Designer
    With Tableau 10, you can design, customize, and publish a single dashboard with optimized views for tablets and phones. We’re also adding workbook-formatting control so you can change font styles across your entire workbook with a single click.

    4. Global Cross-Database Filters

    Global Cross-Database Filters

    With cross-database filters, a single filter can apply to more than one data source in a workbook. These filters make it easier to analyze data across multiple data sources.

    5. Clustering

    clusterfinal_0
    With Tableau 10’s powerful Analytics pane, you can do drag-and-drop cluster analysis. Use clustering to visually spot patterns and groups in your data.

    6. Custom Regions

    custom_territories_final
    Here’s a feature to make sales-planning a breeze. You can make maps of sales territories or regionally explore your data.

    7. Web Authoring

    webauthoring
    Stuck with just a browser? Don’t worry. You can do more on the web. Add published data sources and author dashboards right in the browser.

    8. Data-Source Analytics

    datasourcemetrics_0
    See what’s hot in your organization with data-source analytics. Monitor data-source usage stats at a glance, and favorite the data sources you use most.

    9. Connectors

    Connector-googlesheets
    We're adding and improving our data connectors so you can start analyzing your data faster. Enjoy connections to Google Sheets, Quickbooks Online, Kognitio, memSQL, OData, and WDC 2.0 for web data.

    10. Mobile Device Management

    10 feature
    Deploy Tableau Mobile at scale. We’re supporting AirWatch and MobileIron for enterprise Tableau Mobile deployments.

    When Will Tableau 10 Be Released?

    10.0 is still in progress, anytime soon it will come. I guess it will come out either this end of the year or early of the next year. If you are excited to work with Tableau 10.0 you anyways have 10.0 beta version in access. Just visit Tableau website and access it and feel it.