【发布时间】:2019-02-04 15:04:47
【问题描述】:
我在 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()(带有对象名称的character向量)来制作图表吗?如果是这样,您必须将 ls() 对象解析为eval和parse。例如第一个对象:eval(parse(text = ls()[1])) -
我不需要使用 ls(),但我已经导入了我的文件(带有一个单独的循环),我需要一种方法来列出它们以传递给图形循环。跨度>
-
在您的示例中,
files是ls()。以class(files[1])为例,检查它返回给您的内容。 “let-7b-5p”不同于`let-7b-5p`