R语言数据处理(三)

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")
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackson的生态模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值