1. nc文件转换为tif格式文件
library(raster)
library(ncdf4)
library(rasterVis)
library(lattice)
input_nc <- "D:/Datasets/2022426181936222_BGIForestAgeMPIBGC1.0.0.nc"
varname = 'ForestAge_TC030'
raster1 = stack(input_nc, varname = varname)
raster1
output_tif <- "D:/Datasets/ForestAge_TC030.tif"
rasterOptions(chunksize = c(1000, 1000))
writeRaster(raster1, filename = output_tif, format = "GTiff", overwrite = TRUE)
2. pearson相关性分析1
library(openxlsx)
library(dplyr)
setwd("D:/")
# 清除列表数据
rm(list=ls(all=TRUE))
# 读取Excel数据
data <- read.xlsx("person.xlsx")
# 提取指标数据列的范围
indicator1_cols <- 2:6
indicator2_cols <- 8:12
# 创建空矩阵保存结果,两列分别保存显著性和相关性
results <- matrix(NA, nrow = nrow(data), ncol = 3)
# 循环计算每一行的相关性
for (i in 1:nrow(data)) {
print(i)
# 提取当前行的指标数据,并进行数据格式转换
indicator1 <- as.numeric(data[i, indicator1_cols])
indicator2 <- as.numeric(data[i, indicator2_cols])
# 提取显著性和相关性
p_value <- cor.test(indicator1, indicator2, method = "pearson")$p.value
correlation <- cor(indicator1, indicator2, method="pearson")
results[i, 2] <- p_value
results[i, 3] <- correlation
}
results_df <- as.data.frame(results)
results_df[,1] <- data[,1]
colnames(results_df) <- c("provinces", "p_value", "correlation")
write.xlsx(results_df, "output.xlsx", sheetName = "Correlation Results", colNames = TRUE, append = TRUE)
# 提取p-value小于0.05的数据行
significant_rows <- results_df[results_df$p_value < 0.05, ]
write.xlsx(significant_rows, "significant_output.xlsx", sheetName = "Significant Results", colNames = TRUE)
3. pearson相关性分析2
library(openxlsx)
library(readxl)
library(dplyr)
setwd("D:/")
# 清除列表数据
rm(list=ls(all=TRUE))
# 读取Excel数据
data1 <- read.xlsx("a.xlsx", rowNames = T)
data2 <- read.xlsx("b.xlsx", rowNames = T)
# 提取指标数据列的范围
indicator1_cols <- 1:ncol(data1)
indicator2_cols <- 1:ncol(data2)
# 创建空矩阵保存结果
p <- matrix(NA, nrow = ncol(data1), ncol = ncol(data2))
r <- matrix(NA, nrow = ncol(data1), ncol = ncol(data2))
# 循环计算每一列的相关性
for (i in indicator1_cols) {
for (j in indicator2_cols) {
print(i*j)
# 提取当前列的指标数据,并进行数据格式转换
indicator1 <- as.numeric(data1[, i])
indicator2 <- as.numeric(data2[, j])
# 提取显著性和相关性
correlation <- cor(indicator1, indicator2, method="pearson")
p_value <- cor.test(indicator1, indicator2, method = "pearson")$p.value
p[i, j] <- p_value
r[i, j] <- correlation
}
}
results_p <- as.data.frame(p)
results_r <- as.data.frame(r)
write.xlsx(results_p, "output.xlsx", sheetName = "Correlation Results", colNames = TRUE, append = TRUE)
# 提取p-value小于0.05的数据行
significant_rows <- results_df[results_p < 0.05, ]
write.xlsx(significant_rows, "significant_output.xlsx", sheetName = "Significant Results", colNames = TRUE)
4. 删除重复数据
删除第一列、第二列和第三列相同的所在行,只保留一个:
library(readxl)
library(openxlsx)
setwd("C:/Users/Desktop/Data/")
All_M <- read_excel("All_M.xls", sheet = 1)
All_M <- as.data.frame(All_M)
summary(All_M)
# head(All_M)
# 删除第一列、第二列和第三列相同的所在行,只保留一个
data <- All_M[!duplicated(All_M[, c(1, 2, 3)]), ]
summary(data)
# 检查是否有重复行
duplicated_rows <- data[duplicated(data), ]
duplicated_rows
# 保存数据到xls文件
write.xlsx(data, "All_M_Duplicated.xls")