R语言read.table()函数读取文件如果有换行符n,一个为什么会变成两个\呢?

2021-11-08 15:04:28 浏览数 (1)

使用R语言的ggplot2作图,使用geom_text()函数添加文本,因为文本比较长,所以想在文本中间添加一个换行符,这样添加文本后就可以换行显示

image.png

这个是数据

但是使用R语言读取进来的时候为什么会多一个斜杠呢?

image.png

我是win10系统 R语言是4.0.3

我之前好像也这样处理过数据,当时好像没有遇到过这个问题呀

暂时不知道问题出在哪了

查了还没有找到资料

linux系统也有这个问题

image.png

现在想到的办法是只能把这一列数据拆分成两列,读入以后再使用换行符把两列数据粘贴成一列

代码语言:javascript复制
read.table("abcd.csv",sep=",",header=T) -> pra
pra

pra$label1<-paste(pra$x,pra$y,sep="n")

ggplot() 
  geom_text(data=pra,aes(x=x,y=y,label=label1))

image.png

这样是行得通的

还有一个办法是用空格替换换行符

然后使用stringr这个包里的str_wrap()函数

代码语言:javascript复制
pra<-read.csv("abcd.csv")
pra

ggplot() 
  geom_col(data=pra,aes(x=x,y=y,fill=x)) 
  geom_text(data=pra,aes(x=x,
                         y=y 1,
                         label=stringr::str_wrap(label1,width=1)))

image.png

还有一个知识点是如果坐标轴文本过长

也可以使用stringr这个包里的str_wrap()函数

代码语言:javascript复制
df<-data.frame(x=c("AAAAAAA  AAAAA AAA",
                   "BBBBBBB  BBBB BBB",
                   "DDDDDDD  DDD DDDD"),
               y=5)
ggplot() 
  geom_col(data=df,aes(x=x,y=y,fill=x)) 
  #coord_flip() 
  scale_x_discrete(labels=function(x)stringr::str_wrap(x,width = 1)) 
  geom_text(data=df,aes(x=x,y=y 0.5,label=str_wrap(x,width=1))) 
  scale_y_continuous(expand = c(0,0),limits = c(0,7))

image.png

这里又遇到了另外一个问题是图例没有换行,又不知道如何解决了!

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

0 人点赞