I have the following data.frame and I want to perform some calculations on the 2nd column.
> test
code age
1 101 15
2 102 25
3 103 16
4 104 u1
5 105 u1
6 106 u2
7 107 27
8 108 27
As you can see, the 2nd column does not include only numbers. I omitted these cases:
> new<-subset(test,code<104 | code>106)
> new
code age
1 101 15
2 102 25
3 103 16
7 107 27
8 108 27
But when I try to do a calculation in a new column this is what I get:
> new["MY_NEW_COLUMN"] <- NA
> new
code age MY_NEW_COLUMN
1 101 15 NA
2 102 25 NA
3 103 16 NA
7 107 27 NA
8 108 27 NA
> new$MY_NEW_COLUMN <-new[,2] * 5
Warning message:
In Ops.factor(new[, 2], 5) : * not meaningful for factors
Why does that happen? Any suggestions?
In R, factors are used to work with categorical variables, variables that have a fixed and known set of possible values. They are also useful when you want to display character vectors in a non-alphabetical order. Historically, factors were much easier to work with than characters.
Factor in R is a variable used to categorize and store the data, having a limited number of different values. It stores the data as a vector of integer values. Factor in R is also known as a categorical variable that stores both string and integer data values as levels.
new[,2]
is a factor, not a numeric vector. Transform it first
new$MY_NEW_COLUMN <-as.numeric(as.character(new[,2])) * 5
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With