繁体   English   中英

在 function 中使用多个变量或在 R 中使用 for 循环

using multiple variables in a function OR for loop in R

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我一直无法在以前的帖子中找到我需要的答案,所以我开始了一个新问题。 我正在尝试将多个变量输入到 for 循环或 function 中,以便通过变量的每个步骤获得一个 output。 我不需要变量的所有排列,我只需要循环或 function 对向量的每个元素并行执行一次(以相同的顺序)。 这是我所做的...

a=c("BP GOterms","CC GOterms","MF GOterms")
i = c(0,2,4)
j = c(2,4,6)
n = rep(n,3)

func<-function(a,i,j,n) {
  temp<-arrange(df[df$ID %in% hit[(i*n+1):(n*j)],], -Cluster,Count)
  temp$Description<-factor(temp$Description,levels=unique(temp$Description,fromLast=T))
  plot<-ggplot(temp,aes(Cluster,Description,size=Count,color=p.adjust))+geom_point()+ggtitle(a)
  print(plot)
}

mapply(func,i=i,j=j,n=n,a=a)

这给了我正确的 output 3 次,我只想要一次

或者,我一直在尝试这样的事情......

for (i in c(0,2,4) & j in c(2,4,6) & title in c("BP GOterms","CC GOterms","MF GOterms")) {
  temp<-arrange(df[df$ID %in% hit[(i*n+1):(n*j)],], -Cluster,Count)
  temp$Description<-factor(temp$Description,levels=unique(temp$Description,fromLast=T))
  plot<-ggplot(temp,aes(Cluster,Description,size=Count,color=p.adjust))+geom_point()+ggtitle(title)
  print(plot)
}

我收到以下错误:

Warning messages:
1: In (i * n + 1):(n * j) :
  numerical expression has 81 elements: only the first used
2: In (i * n + 1):(n * j) :
  numerical expression has 81 elements: only the first used
3: In Ops.factor(Cluster) : ‘-’ not meaningful for factors

要运行我的代码,您需要非常大的 df。 但这里有一个例子说明它的样子......

structure(list(Cluster = structure(c(2L, 2L, 2L, 2L, 2L, 2L), .Label = c("M1", 
"M2"), class = "factor"), ONTOLOGY = structure(c(1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("BP", "CC", "MF"), class = "factor"), 
    ID = c("GO:1901673", "GO:0034314", "GO:0006892", "GO:0036503", 
    "GO:0035967", "GO:0006986"), Description = structure(c(1L, 
    2L, 3L, 6L, 7L, 8L), .Label = c("regulation of mitotic spindle assembly", 
    "Arp2/3 complex-mediated actin nucleation", "post-Golgi vesicle-mediated transport", 
    "membrane fusion", "establishment of protein localization to membrane", 
    "ERAD pathway", "cellular response to topologically incorrect protein", 
    "response to unfolded protein", "vacuolar transport", "response to topologically incorrect protein", 
    "cytosolic transport", "endosomal transport", "vacuole organization", 
    "DNA-dependent DNA replication", "macroautophagy", "response to endoplasmic reticulum stress", 
    "Golgi vesicle transport", "rRNA processing", "myeloid leukocyte activation", 
    "rRNA metabolic process", "mitotic nuclear division", "DNA replication", 
    "regulation of mitotic cell cycle phase transition", "regulation of cell cycle phase transition", 
    "ribosome biogenesis", "proteasome-mediated ubiquitin-dependent protein catabolic process", 
    "chromosome segregation", "regulation of chromosome organization", 
    "autophagy", "process utilizing autophagic mechanism", "proteasomal protein catabolic process", 
    "ncRNA processing", "mitotic cell cycle phase transition", 
    "cell cycle phase transition", "regulation of DNA metabolic process", 
    "negative regulation of cell cycle", "ribonucleoprotein complex biogenesis", 
    "DNA repair", "ncRNA metabolic process", "regulation of mitotic cell cycle"
    ), class = "factor"), GeneRatio = c("8/1090", "10/1090", 
    "18/1090", "18/1090", "20/1090", "21/1090"), BgRatio = c("21/19527", 
    "32/19527", "95/19527", "95/19527", "97/19527", "104/19527"
    ), pvalue = c(9.7302693101372e-06, 5.88348341881873e-06, 
    4.47976958483539e-06, 4.47976958483539e-06, 3.24568370146555e-07, 
    2.40596847523017e-07), p.adjust = c(0.00248177711775767, 
    0.00171451628569576, 0.0014795185682183, 0.0014795185682183, 
    0.000229701672243719, 0.000198652797104838), qvalue = c(0.00230759974232573, 
    0.00159418720995361, 0.00137568222478875, 0.00137568222478875, 
    0.000213580629738545, 0.000184710842940477), Count = c(8L, 
    10L, 18L, 18L, 20L, 21L)), row.names = c(NA, 6L), class = "data.frame")

谢谢你尽你所能的帮助!

问题暂未有回复.您可以查看右边的相关问题.
1 在R中使用文本变量进行循环

我试图在R中编写一个for循环。但是,我一直坚持在文本参数内替换运行变量。 这是我想做的: 当x取值“ Automatic S(1)”,“ Automatic S(2)”,...,“ Automatic S(9)”时,x应该是变量vehicle $ trans长度的向量。 我该如何解 ...

2015-05-28 02:57:00 1 753   r
2 使用R在矩阵中进行循环

我必须将54个矩阵放在一个名为A的向量列表中。我希望此列表中的前25个矩阵为零矩阵,除了矩阵的第(i,j)个元素,它应该等于1。 我所有的矩阵都是5x5。 我正在使用for循环,但我不明白如何创建前25个矩阵。 现在我试图用(i:(i-1),j:(j-1))th元素= 1制作16个矩阵 ...

2017-11-16 03:31:14 1 55   r
3 使用knn在r中进行变量选择

我有一个数据框架(df),其中包含72个观测值和592个变量以及一个因子类变量(总共593个变量,即dim(df)= 72593)。 我正在寻找一种使用接收器工作特性(ROC)选择7个变量(包括类变量)以选择最佳k值的方法。 我想使用这七个变量来使用图形模型进行分析,但是我不想随机选择变量。 ...

2013-06-21 21:13:22 1 1133   r/ knn/ roc
4 在变量中进行循环

好的,我需要为图形设置很多颜色,并将颜色(数组)放入循环中。 它用于插件(Chart.js),我想在图形中显示不同的颜色。 我尝试了这个: 我有一个所有颜色的数组。 ...

5 如何使用多个循环在矩阵中进行计算?

我有一个9 x 682矩阵(A)。 每36列对应一个新变量(总共17个变量)。 对于每个变量(36列),我想计算每6列的平均值(即,对于36列的每个块,第1、7、13、19、31列的平均值,依此类推。 我坚持使用几个For循环。 任何帮助深表感谢。 ...

6 使用 R 循环多个变量

我从 CSV 文件导入数据,并想在 2018 年公司股票的两个价格之间创建一个“比较表”: 我有这组代码(所有比较): 对于那些问过的人,这是最终的代码部分和我看起来很糟糕的表: 问题主要是代码太多。 在代码的第二部分中,我如何制作一个漂亮的循环? 我需要一个吗? 为什么我以这种 ...

2020-01-22 07:14:38 0 55   r/ loops
7 如何在R中进行操作并返回多个对象的循环

这是我的第一篇文章,我想我一直在寻找答案,但是没有运气,但是我可能没有输入正确的搜索字词,因为我是R的新手。对于在此之前以及是否已经回答此问题,我深表歉意。它有一个链接将不胜感激。 本质上,我试图创建一个循环,该循环将对我使用read.table从.txt文件读入R的一组数据帧进行操作。 ...

2015-11-24 19:03:05 2 744   r/ loops
8 在R函数中使用for循环

目标:获取带有标题的data.frame并返回一个新的data.frame,其中包含从函数内的计算创建的其他变量。 我现有的代码可用于创建data.frame的转换: 通过此代码,我获得了一个data.frame,该函数已应用于我的数据的所有列。 我需要帮助:1.到目前为止, ...

9 如何在 R 中进行 OR 循环

我有一个包含 100 个值的数据集,并且只想从该数据集中选择特定项目。 我现在就是这样做的: df.match &lt;- subset(df.raw.csv, value == "UC9d" | value == "UCenoM“) 它正在工作,但我想用循环解决它。 我试过这个,但我只得到一场比赛 ...

2020-12-16 10:09:24 2 55   r
10 在循环或函数中使用Julia多个图进行绘图

我正在使用Atom和Julia绘制大量图形。 我有这样的代码: 其中graphplot是grom PlotRecipes: https : //github.com/JuliaPlots/PlotRecipes.jl 我有以下问题:使用此代码作为函数不会绘制任何内容(就像在局部变 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM