我在全局环境中的 R 中有一个数据框:
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)
我想制作一个矩阵来帮助我了解哪些列名在所有数据框中是通用的,哪些不是。
我尝试手动完成此操作:
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)
这是在 R 中执行此操作的正确方法吗?
顺便说一句,如果它们在列表中,我认为我们可以这样做:
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)
你是指像下面这样的矩阵吗?