The problem is that
salary_var is a list containing a single-element. The call to
sort() is then trying to sort a list, not an atomic element. You can see that
salary_var is a list by running
str(salary_var). If you omit the
c(), you’ll instead end up with a data frame with a single column, which gives the same problem.
Two simple solutions:
To sort the values in the element of the list, use
head(sort(salary_var[], decreasing=TRUE), 3)
where the [] selects the first element of the list and sorts the values within it.
salary_var explicitly as a numeric vector instead:
salary_var <- (irs_data/irs_data)[]
One note: in your post, you wrote
new_var instead of
salary_var in your call to
sort() which may confuse other readers.