Conversion of dataype for multiple columns at once in R [duplicate] - r

This question already has answers here:
Change the class from factor to numeric of many columns in a data frame
(16 answers)
How to convert a factor to integer\numeric without loss of information?
(12 answers)
Closed 2 years ago.
so I have a csv file with around 60 variables that I have imported in R and I'd like to convert the columns to datatypes like numeric, Posixt, and Boolean. In my previous files I needed to do so only for a limited set of columns so I simply used 4-5 times.
data$var1 <- as.numeric(as.character(data$var1)
data$var2 <- as.numeric(as.character(data$var2)
For now however, when I want to convert 60 columns I'd rather not write 60 lines of code again and again. Could someone help me come up with a more efficient way?

Related

Select only numeric variables of a data frame in R [duplicate]

This question already has answers here:
Why does apply convert logicals in data frames to strings of 5 characters?
(2 answers)
Selecting only numeric columns from a data frame
(12 answers)
Closed 2 years ago.
I know that the question is very easy, but I have a more specific one:
I have a data frame, with 50 variables (numeric and non-numeric) and 5000 observations.
Now what I want to do is create another data frame containing only the numerica variables of the original one.
On this website I found the solution of my problem, that is:
numeric_variables<-unlist(lapply(original_data,is.numeric))
X<-original_data[numeric_variables]
But I was wondering: why if I try like this, it does not work instead? what's wrong?
numeric_variables2<-apply(original_data,2,is.numeric)
x<-original_data[numeric_variables2]
try this :
names_num <- names(which(sapply(df, is.numeric)))
df_num <- df[, names_num]

Convert factor into numeric values (R) [duplicate]

This question already has answers here:
How to convert a factor to integer\numeric without loss of information?
(12 answers)
as.numeric with comma decimal separators?
(7 answers)
Closed 3 years ago.
I´m sure this is simple, but I couldn´t find the right answer to my specific problem.
I have a data frame in R. The first column has a DateTime (POSIXct) format.
The values in all the other columns have the format "factor".
Since all of the values in these columns are numbers I want to convert them in to a numeric format.
An additional problem is that since I´m from europe the numbers (factors) have "," as a decimal mark.
How do I convert these columns in to a numeric format?

r as.numeric change big values even with as.character [duplicate]

This question already has answers here:
How to work with large numbers in R?
(1 answer)
Preserving large numbers
(8 answers)
Exponentiate very large numbers in R
(3 answers)
Closed 4 years ago.
I'm struggling to convert some big numbers to numeric in R while using "as.numeric"; even when combining it with as.character.
I have a character class column whose values are all numeric. To be specfic, 23 numbers in each value.
While trying to covert the whole column to numeric, the values are changing, and even if I try to do it just with one value I have the same problem (in numeric or character format)
that's what I've being trying:
as.numeric(as.character(20161128000215091389073))
as.numeric(as.character("20161128000215091389073"))
as.numeric(20161128000215091389073)
or
as.numeric(as.character("20161226000750155832528"))
as.numeric(as.character(20161226000750155832528))
as.numeric(20161226000750155832528)
returns respectively:
20161128000215089938222
and
20161226000750157496020
I couldn't make it return the same number... any ideas?

as. double()/ as.numeric() not working [duplicate]

This question already has answers here:
How to convert a factor to integer\numeric without loss of information?
(12 answers)
Closed 5 years ago.
I want the program to read the data as double float but when I use as.double and as.numeric it changes the data itself.
Original data
Original data is in fractions
After applying as.double to each column separately and combining to form a dataframe, the data starts looking like this
Changed data values after applying as. double()
Your data are probably factor (not character).
To convert column x to numeric use as.numeric(levels(x))[x]
This can also help.

R, Add binary columns based on values in existing column [duplicate]

This question already has answers here:
Generate a dummy-variable
(17 answers)
Closed 5 years ago.
Beginner in R and looking to avoid unnecessary copy+pasting...
I have a data frame with a numeric column. I would like to create binary columns based on the values in the numeric column.
I know the tedious approach would be to copy+paste the following and manually add the different values:
DataFrame$NewCol1 <- as.numeric(DataFrame$ExistingCol == 1);
DataFrame$NewCol2 <- as.numeric(DataFrame$ExistingCol == 2);
Would a "for" loop be able to accomplish this task?
How about something like this?
model.matrix(~factor(DataFrame$ExistingCol))[,-1]

Resources