Tenho um dataframe em R no ambiente global:
file_1 <- data.frame(A = 1:5, B = 6:10, C = 11:15)
file_2 <- data.frame(A = 1:5, D = 16:20, E = 21:25)
file_3 <- data.frame(B = 6:10, C = 11:15, F = 26:30)
Quero criar uma matriz que me ajude a entender quais nomes de colunas são comuns em todos os quadros de dados e quais não são.
Tentei fazer isso manualmente:
for (file in files) {
data <- get(file)
column_names[[file]] <- colnames(data)
}
all_columns <- unique(unlist(column_names))
matrix <- sapply(column_names, function(cols) all_columns %in% cols)
rownames(matrix) <- all_columns
matrix_df <- as.data.frame(matrix)
print(matrix_df)
Essa é a maneira correta de fazer isso em R?
A propósito, se estivessem em uma lista, acho que poderíamos fazer assim:
all_columns <- unique(unlist(lapply(mylist, colnames)))
matrix <- sapply(mylist, function(df) all_columns %in% colnames(df))
rownames(matrix) <- all_columns
matrix_df <- as.data.frame(matrix)
print(matrix_df)
Você quer dizer uma matriz como a abaixo?