R 从文本文件读取元组并打印到图形

R 从文本文件读取元组并打印到图形,r,text-files,factors,R,Text Files,Factors,我有一个包含整数数据元组的文本文件,我想将其绘制在一个简单的图形中。 文本文件(“test.txt”)如下所示。所有元组都由制表符分隔 文本文件(test.txt) R代码 m = read.table('test.txt', header = FALSE, sep='\t') plot(log(m[,1]), log(m[,2])) 因此,我得到了 Error in Math.factor(m[,1]): 'log' not meaningful for factors 我能理解的是,我的

我有一个包含整数数据元组的文本文件,我想将其绘制在一个简单的图形中。 文本文件(“test.txt”)如下所示。所有元组都由制表符分隔

文本文件(test.txt)

R代码

m = read.table('test.txt', header = FALSE, sep='\t')
plot(log(m[,1]), log(m[,2]))
因此,我得到了

Error in Math.factor(m[,1]): 'log' not meaningful for factors
我能理解的是,我的数据元组不是作为数值读入的,而是作为因子读入的。因此,“日志”运算符无法对这些(因子)值进行操作。 所以我的想法是将因子转换成数值,但我无法转换数据。此外,我不确定这是否是我问题的解决方案

我想要的是一个以(x,y)-值为轴的2d图形

也许有人知道怎么处理

---编辑---

库(readtext)
图书馆(GG2)

DATA_DIR假设您有此类文本文件:

(1,2)        (1,3)         (2,8)       (3,12)       (5,82)       (...)
我建议使用
read\u text
。使用矢量和字符串进行计算,以准备打印格式的数据

#if packages aren't yet included in R import them by using R-console
#Command: install.packages("package-name")
#import library "readtext" 
library(readtext)
#install library "ggplot2"
library(ggplot2)

#get directory from "readtext"-package which is in my case...
#C:\Users\your_name\Documents\R\win-library\3.5\readtext\extdata\your_folder\
DATA_DIR <- system.file("extdata/", package = "readtext")

#the textfile you want to plot should be in folder "your_folder"
mytab = readtext(paste0(DATA_DIR, "your_folder/*")
# readtext object consisting of 1 document and 0 docvars.
# # data.frame [1 x 2]
# doc_id                text               
# <chr>                 <chr>              
#   1 sample_tuple_file.txt "\"(1,2), (1,\"..."

mytuple = strsplit(mytab$text, '\t')
mytuple = mytuple[[1]]

substring(mytuple[1], 2, 2) # get x value
substring(mytuple[1], 4, 4) # get y value 

x = c()
y = c()

for (i in 1:length(mytuple)){
  my_x = substring(mytuple[i], 2, 2)
  my_y = substring(mytuple[i], 4, 4)
  x <- c(x, my_x)
  y <- c(y, my_y)
  rm(my_x)
  rm(my_y)
}

mydata = data.frame(x = x, y = y)

ggplot(data = mydata, aes(x = x, y = y)) + 
  geom_point()
#如果程序包尚未包含在R中,请使用R-console导入它们
#命令:install.packages(“包名”)
#导入库“readtext”
图书馆(readtext)
#安装库“ggplot2”
图书馆(GG2)
#从“readtext”包中获取目录,在我的例子中。。。
#C:\Users\your\u name\Documents\R\win library\3.5\readtext\extdata\your\u文件夹\

DATA_DIR假设您有此类文本文件:

(1,2)        (1,3)         (2,8)       (3,12)       (5,82)       (...)
我建议使用
read\u text
。使用矢量和字符串进行计算,以准备打印格式的数据

#if packages aren't yet included in R import them by using R-console
#Command: install.packages("package-name")
#import library "readtext" 
library(readtext)
#install library "ggplot2"
library(ggplot2)

#get directory from "readtext"-package which is in my case...
#C:\Users\your_name\Documents\R\win-library\3.5\readtext\extdata\your_folder\
DATA_DIR <- system.file("extdata/", package = "readtext")

#the textfile you want to plot should be in folder "your_folder"
mytab = readtext(paste0(DATA_DIR, "your_folder/*")
# readtext object consisting of 1 document and 0 docvars.
# # data.frame [1 x 2]
# doc_id                text               
# <chr>                 <chr>              
#   1 sample_tuple_file.txt "\"(1,2), (1,\"..."

mytuple = strsplit(mytab$text, '\t')
mytuple = mytuple[[1]]

substring(mytuple[1], 2, 2) # get x value
substring(mytuple[1], 4, 4) # get y value 

x = c()
y = c()

for (i in 1:length(mytuple)){
  my_x = substring(mytuple[i], 2, 2)
  my_y = substring(mytuple[i], 4, 4)
  x <- c(x, my_x)
  y <- c(y, my_y)
  rm(my_x)
  rm(my_y)
}

mydata = data.frame(x = x, y = y)

ggplot(data = mydata, aes(x = x, y = y)) + 
  geom_point()
#如果程序包尚未包含在R中,请使用R-console导入它们
#命令:install.packages(“包名”)
#导入库“readtext”
图书馆(readtext)
#安装库“ggplot2”
图书馆(GG2)
#从“readtext”包中获取目录,在我的例子中。。。
#C:\Users\your\u name\Documents\R\win library\3.5\readtext\extdata\your\u文件夹\

数据目录代码对我不起作用。不知道我是否犯了什么错误。请参阅我在顶部编辑的问题。输入结构可能略有不同。试试看怎么样?
mytuple=strsplit(mytab$text,”)
mytuple=strsplit(mytab$text,“\t”)
工作得很好。在重新思考我的输入结构后,我觉得这很有意义,元组由制表符('\t')分隔。代码不适合我。不知道我是否犯了什么错误。请参阅我在顶部编辑的问题。输入结构可能略有不同。试试看怎么样?
mytuple=strsplit(mytab$text,”)
mytuple=strsplit(mytab$text,“\t”)
工作得很好。在重新思考我的输入结构后,我觉得有意义,元组由制表符('\t')分隔。