I have a df
dataset.
# My data
df <- read.csv("https://raw.githubusercontent.com/Leprechault/trash/refs/heads/main/Dados_C3_data_planta.csv", sep=";")
head(df)
# Data GLY_PN CRO_P MIPU_P CEN_P POA01_P CECRO_P COM_P MOR_PN
#1 24-01-2024 53 40 3 0 0 0 0 0
#2 25-01-2024 56 8 0 24 9 0 0 0
#3 26-01-2024 0 27 0 47 26 0 0 0
#4 27-01-2024 0 0 0 0 0 6 43 48
#5 31-01-2024 0 0 0 62 35 0 0 0
#6 02-02-2024 0 0 0 50 50 0 0 0
# COPA_PN RHY_P SOR_P
#1 0 0 0
#2 0 0 0
#3 0 0 0
#4 0 0 0
#5 0 0 0
#6 0 0 0
I’d like to convert the data.frame in class “matrix” “array”, but doesn’t work with as.matrix
or data.matrix
functions.
My desirable output (df_to_matrix
) is:
# GLY_PN CRO_P MIPU_P CEN_P POA01_P CECRO_P COM_P MOR_PN
#1 24-01-2024 53 40 3 0 0 0 0 0
#2 25-01-2024 56 8 0 24 9 0 0 0
#3 26-01-2024 0 27 0 47 26 0 0 0
#4 27-01-2024 0 0 0 0 0 6 43 48
#5 31-01-2024 0 0 0 62 35 0 0 0
#6 02-02-2024 0 0 0 50 50 0 0 0
# COPA_PN RHY_P SOR_P
#1 0 0 0
#2 0 0 0
#3 0 0 0
#4 0 0 0
#5 0 0 0
#6 0 0 0
class(df_to_matrix)
[1] "matrix" "array"
No column name in the first column and values as numeric. Please any help with it?
# Load the data
df <- read.csv("https://raw.githubusercontent.com/Leprechault/trash/refs/heads/main/Dados_C3_data_planta.csv", sep=";")
# Convert to matrix, excluding the first column (dates)
df_to_matrix <- as.matrix(df[, -1]) # Exclude the first column
# Optionally, convert character columns to numeric
df_to_matrix <- apply(df_to_matrix, 2, as.numeric)
# Check the class
class(df_to_matrix)
# Print the resulting matrix
print(df_to_matrix)
Silver Spade is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1
Convert the data frame to zoo and then to matrix.
library(zoo)
df |> read.zoo(format = "%d-%m-%Y") |> as.matrix()
giving this matrix with row names constructed from the first column normalized to use yyyy-mm-dd format which unlike the original format sorts in date order.
GLY_PN CRO_P MIPU_P CEN_P POA01_P CECRO_P COM_P MOR_PN COPA_PN RHY_P SOR_P
2024-01-24 53 40 3 0 0 0 0 0 0 0 0
2024-01-25 56 8 0 24 9 0 0 0 0 0 0
2024-01-26 0 27 0 47 26 0 0 0 0 0 0
2024-01-27 0 0 0 0 0 6 43 48 0 0 0
2024-01-31 0 0 0 62 35 0 0 0 0 0 0
2024-02-02 0 0 0 50 50 0 0 0 0 0 0
2024-02-05 0 0 0 0 0 0 0 0 99 0 0
2024-02-06 0 0 81 0 0 0 0 0 0 17 0
2024-02-07 0 0 0 58 10 0 0 0 0 0 33
2024-02-09 0 0 0 0 0 0 0 0 0 32 64
2024-02-10 0 0 0 47 22 0 0 0 0 0 64
We can use as.matrix()
with `row.names<-`()
.
`row.names<-`(as.matrix(d0[-1]), d0[[1]])
GLY_PN CRO_P MIPU_P CEN_P POA01_P CECRO_P COM_P MOR_PN COPA_PN RHY_P SOR_P
24-01-2024 53 40 3 0 0 0 0 0 0 0 0
25-01-2024 56 8 0 24 9 0 0 0 0 0 0
26-01-2024 0 27 0 47 26 0 0 0 0 0 0
27-01-2024 0 0 0 0 0 6 43 48 0 0 0
31-01-2024 0 0 0 62 35 0 0 0 0 0 0
02-02-2024 0 0 0 50 50 0 0 0 0 0 0
05-02-2024 0 0 0 0 0 0 0 0 99 0 0
06-02-2024 0 0 81 0 0 0 0 0 0 17 0
07-02-2024 0 0 0 58 10 0 0 0 0 0 33
09-02-2024 0 0 0 0 0 0 0 0 0 32 64
10-02-2024 0 0 0 47 22 0 0 0 0 0 64
No external packages.
Data.
d0 = read.csv("https://raw.githubusercontent.com/Leprechault/trash/refs/heads/main/Dados_C3_data_planta.csv", sep=";")