Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Unicode代码点读入R数据帧_R_Unicode - Fatal编程技术网

如何将Unicode代码点读入R数据帧

如何将Unicode代码点读入R数据帧,r,unicode,R,Unicode,我有一个两列的Unicode代码感兴趣点文本文件(本测试中为希腊符号,但通常为任意一组Unicode字符): 我想把它读入R,这样我就可以在我用来绘制包含数学符号或其他Unicode符号的绘图的字体上踩轮胎了 作为一个可重复性最低的开始,我首先从这个Unicode表中随机抽取一个样本: set.seed(42) df <- data.frame(date = 1:10 , value = cumsum(runif(10 , max = 10)) ) ut <- read.ta

我有一个两列的Unicode代码感兴趣点文本文件(本测试中为希腊符号,但通常为任意一组Unicode字符):

我想把它读入R,这样我就可以在我用来绘制包含数学符号或其他Unicode符号的绘图的字体上踩轮胎了

作为一个可重复性最低的开始,我首先从这个Unicode表中随机抽取一个样本:

set.seed(42)
df <- data.frame(date = 1:10 , value = cumsum(runif(10 , max = 10)) )    
ut <- read.table("ut.txt", allowEscapes=TRUE)
df$labels <- paste("\\", sample(ut$V1, size=10), sep="")
当我从
labels
列打印时,R会写出文字字符串,而不是它所表示的Unicode字符:

library(ggplot2)
p <- ggplot(df, aes(x=date, y=value, label=labels))
p <- p + geom_line()
p <- p + ggtitle("5\u03BCg (\u03C7-squared test)") # control title
p <- p + geom_text()
library(Cairo)
ggsave("test.pdf", device=cairo_pdf)
库(ggplot2)

p这里有一种使用
scale\u shape\u手册
的方法。我包含了如何输入您数据的代码,因此我不必阅读文本文件

set.seed(42)
df <- data.frame(date = 1:10 , value = cumsum(runif(10 , max = 10)) )    


df <- df[1:6, ]
## Following line stands in for what you read from `read.table`. In your solution, just use what you got from `read.table`
df$labels <- c("\u03A8", "\u03BB", "\u03C4", "\u039C", "\u03A6", "\u03C2")



library(ggplot2)
p <- ggplot(df, aes(x=date, y=value, shape = labels))
p <- p + geom_line()
p <- p + ggtitle("5\u03BCg (\u03C7-squared test)") # control title
p <- p + geom_point(size = 5) + scale_shape_manual(values = df$labels)
p
set.seed(42)

df它还可与
geom_text()
(无限感谢@astrofunkswag以其巧妙的方式教会我们如何正确地包含符号):

输出:


谢谢。我可能应该澄清一下:如何从文本文件中读取标签,如原始问题中所述?我的问题不是手动键入列向量的内容。我的错误是,读取为
read.table(…,fileEncoding=“UTF-8”)
对我来说很有效。我不清楚read中的一行额外代码是否比plotting函数中的一行额外代码好,但这取决于您:)这肯定比手动输入数百个符号要好!您不必手动输入它们!您只需读入代码并使用这些代码(例如“\u03A8”),就像您在提供数据帧的
头部时所做的那样。根本不需要手动输入你能读懂代码,对吗?(例如“\u03A8”)因此,我提供了一个解决方案来处理这些问题,以获得所需的特殊字符。我包括了一行,我在向量中输入代码,这样我就不必创建文本文件并读取它。你的read命令将取代我的矢量代码。您也可以直接读取unicode字符(例如Δ),但用手工编码两个答案的编码量基本相同,这很荒谬。你可以使用
ut$V2
而不是我在便笺中说的,我可以使用
ut$V2
。我的问题是关于使用第一列。
df$标签
library(ggplot2)
p <- ggplot(df, aes(x=date, y=value, label=labels))
p <- p + geom_line()
p <- p + ggtitle("5\u03BCg (\u03C7-squared test)") # control title
p <- p + geom_text()
library(Cairo)
ggsave("test.pdf", device=cairo_pdf)
set.seed(42)
df <- data.frame(date = 1:10 , value = cumsum(runif(10 , max = 10)) )    


df <- df[1:6, ]
## Following line stands in for what you read from `read.table`. In your solution, just use what you got from `read.table`
df$labels <- c("\u03A8", "\u03BB", "\u03C4", "\u039C", "\u03A6", "\u03C2")



library(ggplot2)
p <- ggplot(df, aes(x=date, y=value, shape = labels))
p <- p + geom_line()
p <- p + ggtitle("5\u03BCg (\u03C7-squared test)") # control title
p <- p + geom_point(size = 5) + scale_shape_manual(values = df$labels)
p
library(ggplot2)
#Code
ggplot(df, aes(x=date, y=value))+
  geom_line()+
  ggtitle("5\u03BCg (\u03C7-squared test)")+
  geom_text(label=c("\u03A8", "\u03BB", "\u03C4", "\u039C", "\u03A6", "\u03C2"))