假设存在文件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文件

  

R语言实现两文件对应行列字符替换(解决正负链统一的问题)的更多相关文章

  1. R语言-探索两个变量

    目的: 通过探索文件pseudo_facebook.tsv数据来学会两个变量的分析流程 知识点: 1.ggplot语法 2.如何做散点图 3.如何优化散点图 4.条件均值 5.变量的相关性 6.子集散 ...

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

    所谓数组(或向量)a和b的外积,指的是a的每个元素和b的每个元素搭配在一起相乘得到的新元素.当然运算规则也可自己定义.外积运算符为 %o%(注意:百分号中间的字母是小写的字母o).比如: > a ...

  3. 在R语言环境中无法载入rJava包的解决办法

    问题描述: 安装包xlsx包后,运行library("xlsx")后弹出错误窗口: RGui (64-bit): Rgui.exe - 系统错误 无法启动此程序,因为计算机中丢失 ...

  4. R语言读取本地文件注意事项

    R里面应该用/,而不是\ ,或者用两个\\   R区分大小写,所以应该用C:,而不是c:

  5. R语言读取excel文件的3种方法

    R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为                ...

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

    路径问题 原始文件路径C:\Users\air\Desktop\1.txt R中有两种方法读取该路径 C:\\Users\\air\\Desktop\\1.txt C:/Users/air/Deskt ...

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

    rm(list=ls())path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'setwd(path)cat("file A\n", file="A& ...

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

    转自:http://www.dataguru.cn/article-2217-1.html R语言中经常进行矩阵(表格)数据的处理,在纷繁复杂的数据中,为其行列定义一个名字变得尤为重要.在处理巨量数据 ...

  9. R语言快速入门

    R语言是针对统计分析和数据科学的功能全面的开源语言,R的官方网址:http://www.r-project.org/  在Windows环境下安装R是很方便的 R语言的两种运行模式:交互模式和批处理模 ...

随机推荐

  1. Django的一些操作与视图函数

    一 . Django的安装 pip install django==1.14.6 # 后面的数字是django的版本 二 .  通过命令行(cmd)来创建Django项目 1. 切换到保存项目的文件夹 ...

  2. 关于wordpress更新提示无法创建目录问题

    说说自己的看法和解决办法 看法: 网上很多人说:是权限问题,那么将文件目录权限设置为777就可以解决.恩,没错,是可以解决更新问题,可是却带来了更大的问题——安全.像他们这个设置后,网站被攻破,数据被 ...

  3. 老男孩python学习自修第十天【三元表达式与lambda表达式】

    例如: 1.使用三元表达式给变量赋值 result = '空' if x == None else x 2.使用lambda定义函数 add = lambda x, y: x+y

  4. js对json解析获取对应属性的值,JSON.stringify()和JSON.parse()

    JSON.stringify() 该方法,将一个JSON对象转化为字符串string JSON.parse() 该方法,将一个字符串转化为JSON对象object 对于JSON对象,获取其对应键值 可 ...

  5. 十分钟了结MySQL information_schema

    information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式.感觉information_schema就像是MySQL实例的一个百科全书,记录了数据库当中大部 ...

  6. flask保存 文件到本地

    本篇队长介绍一下如何 把前端上传的文件保存 到 后端flask项目目录 首先讲一下上传.保存文件的思路: 第一步:前端通过post请求方式提交上传的文件 <input id="file ...

  7. java静态工厂

    本文摘自:https://www.jianshu.com/p/ceb5ec8f1174 本文略长,所以先来个内容提要 序:什么是静态工厂方法 Effective Java 2.1 静态工厂方法与构造器 ...

  8. Vasya and a Tree CodeForces - 1076E(线段树+dfs)

    I - Vasya and a Tree CodeForces - 1076E 其实参考完别人的思路,写完程序交上去,还是没理解啥意思..昨晚再仔细想了想.终于弄明白了(有可能不对 题意是有一棵树n个 ...

  9. bzoj5358

    Problem A. 口算训练Input file: stdinOutput file: stdoutTime limit: 5 secondsMemory limit: 512 megabytes小 ...

  10. BZOJ3790神奇项链——manacher+贪心

    题目描述 母亲节就要到了,小 H 准备送给她一个特殊的项链.这个项链可以看作一个用小写字 母组成的字符串,每个小写字母表示一种颜色.为了制作这个项链,小 H 购买了两个机器.第一个机器可以生成所有形式 ...