R语言实现两文件对应行列字符替换

假设存在文件file1.xlsx,其内容如下:

存在文件file2.xlsx,其内容如下:

现在我想从第七列开始,将file2所有的字符替换成file1一样的,即第七、八、九、十列不需要改变,因为file1和file2的字符一致的(3和1,2和4);从第11列开始,file1和file2的字符不一样了。我的命名规则是从第11列开始,file2的2改为3,4改1,3改为2,1改为4;

下面是代码的实现过程:

install.packages("openxlsx") #安装openxlsx安装包
install.packages("readxl") #安装readxl安装包
install.packages("stringr")#安装stringr安装包
library("stringr")
library(readxl)
library(openxlsx)
model_57hanchip<- read_excel("E:/myproject/file1.xlsx")
kg_ame<- read_excel("E:/myproject/file2.xlsx")
model_57hanchip<-as.matrix(model_57hanchip);model_57hanchip
kg_ame<-as.matrix(kg_ame);kg_ame
for (i in 1:4){
  g=i*2+5
  j=i*2+6
  if(any(intersect(model_57hanchip[,g:j], kg_ame[,g:j])>0)==TRUE | all(kg_ame[,g:j]==0)==TRUE){
    print(c(g,j))
  }else if(all(c(1,2) %in% kg_ame[,g:j])==TRUE){
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "1", "4");
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "2", "3");
    print(c(kg_ame[,g],kg_ame[,j]))
  }else if(all(c(1,3) %in% kg_ame[,g:j])==TRUE){
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "1", "4");
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "3", "2");
    print(c(kg_ame[,g],kg_ame[,j]))
  }else if(all(c(2,4) %in% kg_ame[,g:j])==TRUE){
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "2", "3");
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "4", "1");
    print(c(kg_ame[,g],kg_ame[,j]))
  }else {
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "3", "2");
    kg_ame[,g:j] =str_replace_all(kg_ame[,g:j], "4", "1");
    print(c(kg_ame[,g],kg_ame[,j]))
  }
}
##上述的代码的意思是将1改为4,2改为3,3改为2,4改为1;
openxlsx::write.xlsx(kg_ame, file = "E:/myproject/kg_ame.xlsx") #保存为Excel文件

  

原文地址:https://www.cnblogs.com/chenwenyan/p/9306795.html

时间: 2024-10-07 03:09:32

R语言实现两文件对应行列字符替换的相关文章

R语言读取EXCEL文件的各种方法

最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享: 第一:R中读取excel文件中的数据的路径: 假定在您的电脑有一个excel文件,原始的文件路径是:D:\work\data\1 如果直接把这个路径拷贝到R中,就会出现错误,原因是: \是escape character(转义符),\\才是真正的\字符,或者用/ 因此,在R中有两种方法读取该路径: 1:在R中输入一下路径:D:\\work\\data\\1     

R语言-探索两个变量

目的: 通过探索文件pseudo_facebook.tsv数据来学会两个变量的分析流程 知识点: 1.ggplot语法 2.如何做散点图 3.如何优化散点图 4.条件均值 5.变量的相关性 6.子集散点图 7.平滑化 简介: 如果在探索单一变量时,使用直方图来表示该值和整体的关系,那么在探索两个变量的时候,使用散点图会更适合来探索两个变量之间的关系 案例分析: 1.根据年龄和好友数作出散点图 #导入ggplot2绘图包library(ggplot2) setwd('D:/Udacity/数据分析

R语言中两个数组(或向量)的外积怎样计算

所谓数组(或向量)a和b的外积,指的是a的每个元素和b的每个元素搭配在一起相乘得到的新元素.当然运算规则也可自己定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).比如: > a <- 1:2 > b <- 3:5 > d <- a %o% b > d [,1] [,2] [,3] [1,] 3 4 5 [2,] 6 8 10 注意维数公式为: dim(d) = c( dim(a) , dim(b) ) 实际上R语言提供了一个更为一般化得外积函数o

R语言中两个数组(或向量)的外积如何计算

所谓数组(或向量)a和b的外积,指的是a的每一个元素和b的每一个元素搭配在一起相乘得到的新元素.当然运算规则也可自定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).例如: > a <- 1:2 > b <- 3:5 > d <- a %o% b > d [,1] [,2] [,3] [1,] 3 4 5 [2,] 6 8 10 注意维数公式为: dim(d) = c( dim(a) , dim(b) ) 实际上R语言提供了一个更为一般化得外积函数

R语言 字符串写入文件

out_con <- file("out.txt", "w") write(sprintf("This is line %d.\n",1),out_con,append=T) write("This is line 2.",out_con,append=T) close(out_con) 或者 printer = file("out.txt","w") writeLines(&qu

用R语言进行文件系统管理

阅读导读: 1.R语言如何检查文件或目录是否存在?如何重命名一个文件? 2.R语言如何查看和修改目录的权限? 3.R语言如何删除一个文件? 4.用R语言管理一个文件系统时,都有哪些特殊的目录? 5.如何查看R软件指定包所在目录? 1. 文件系统介绍 计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上

R语言进行文件夹操作示例(转)

rm(list=ls())path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'setwd(path)cat("file A\n", file="A") #创建一个文件A,文件内容是'file A','\n'表示换行,这是一个很好的习惯cat("file B\n", file="B")  #创建一个文件Bfile.append("A", "B")  #将文件B的内容附

使用R语言为矩阵(表格)的行列命名

转自:http://www.dataguru.cn/article-2217-1.html R语言中经常进行矩阵(表格)数据的处理,在纷繁复杂的数据中,为其行列定义一个名字变得尤为重要.在处理巨量数据时,批量命名将是一个不错的操作方法,下面我们通过一些具体的例子演示怎样在R语言中为矩阵的行列进行批量的命名. > x <- matrix(1:12,nrow=3,byrow=T) 初始化一个矩阵,先行后列的顺序进行填充 > x 查看矩阵x   [,1] [,2] [,3] [,4] [1,]

R语言笔记之数据篇

R语言杂七杂八 与R语言有关的应用工具 探索性数据分析 统计推断 回归分析 机器学习-分类问题 R与Rstudio的获取与安装 包package一种扩展R基本功能的机制集成了众多函数 获取包 导入包libraryname 获取帮助 R语言特点 R语言语法基础之数据篇 R语言中的数据 R语言支持的数据类型 基本数据结构 一维数据类型 向量 vocter 1创建 2提取子集 因子 factor 1创建 2提取子集 二维数据类型 矩阵 matrix 1生成矩阵 1matrix方法 2 修改dim属性来