Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
R 在数据框中循环并绘制图形_R_Loops_Ggplot2 - Fatal编程技术网

R 在数据框中循环并绘制图形

R 在数据框中循环并绘制图形,r,loops,ggplot2,R,Loops,Ggplot2,我在RStudio工作,试图制作一些简单的图表和关联。这可能是一个超级简单的修复,但我似乎无法循环浏览我的文件并生成绘图。有关文件、循环和示例数据帧,请参见下文 > ls() [1] "let-7b-5p" "let_7a_5p" "miR_125b_5p" "miR_16_5p" "miR_182_5p" "miR_21_5p" "miR_30e_5p" "miR_320c_2_3p" "miR_92a_1_3p" "miR_92b_3p"

我在RStudio工作,试图制作一些简单的图表和关联。这可能是一个超级简单的修复,但我似乎无法循环浏览我的文件并生成绘图。有关文件、循环和示例数据帧,请参见下文

> ls()
 [1] "let-7b-5p"     "let_7a_5p"     "miR_125b_5p"   "miR_16_5p"    "miR_182_5p"    "miR_21_5p"    "miR_30e_5p"    "miR_320c_2_3p" "miR_92a_1_3p"  "miR_92b_3p"
[10]  "rRNA-45S"      "tRNA_3p_1"    "tRNA_5p_2"    
> files <- ls()
> for(i in files){
+   plt <- ggplot(`i`, aes_string(x="Five", y = "Three")) +
+       geom_point(shape=16) +
+       geom_smooth(method=lm) 
+   print(plt)
+   pearson <- cor.test(`i`$Five, `i`[, "Three"], method = "pearson", conf.level = 0.95)
+   print(pearson)
+ }
Error: `data` must be a data frame, or other object coercible by `fortify()`, not a character vector
> print(`let-7b-5p`)
       Five        Three       One
A      14.06       13.14       13.62
B      14.45       14.64       14.21
C       7.84       10.23        8.05
D      12.84       13.13       13.07
E      16.55       15.97       16.01
F      12.92       12.02       12.37
>ls()
[1] “let-7b-5p”“let_7a_5p”“miR_125b_5p”“miR_16_5p”“miR_182_5p”“miR_21_5p”“miR_30e_5p”“miR_320c_2_3p”“miR_92a_1_3p”“miR_92b_3p”
[10] “rRNA-45S”“tRNA\U 3p\U 1”“tRNA\U 5p\U 2”
>文件(文件中的i){

+plt当函数(
ggplot
此处)需要
数据时,将字符串作为字符向量传递。帧
在循环中不起作用,原因与它在循环外不起作用相同…R不知道从全局环境中检索给定名称的对象

我建议(类似于@patL的注释)检索对象,然后运行循环:

for(i in files){
  dat <- get(i) # new line
  plt <- ggplot(dat, aes_string(x="Five", y = "Three")) + 
  ...
}
for(文件中的i){

dat您想使用
ls()
,这是一个带有对象名称的
字符
向量来制作图表吗?如果是这样,您必须将ls()对象解析为
eval
parse
。例如,对于第一个对象:
eval(parse(text=ls()[1])
我不需要使用ls(),但我已经导入了我的文件(使用一个单独的循环)我需要一种方法来列出它们以传递到绘图循环。在您的示例中,
文件是
ls()
。例如,执行
class(文件[1])
,并检查它返回给您的内容。“let-7b-5p”不同于“
let-7b-5p
”,添加get(I)完成了这个技巧,我现在理解了错误。谢谢!