【问题标题】:I am trying to assign values to the vectors, I tried for loop, but it is not working?我正在尝试为向量分配值,我尝试了 for 循环,但它不起作用?
【发布时间】:2015-10-22 02:49:51
【问题描述】:

我有这个巨大的数据向量“a” 这是截图

现在我应该找到与基因数据不一致的地方。基本上......一个正数被赋予1,0被赋予0,负数被赋予-1。我正在尝试制作一个可以执行以下操作的命令:

if a > 0, then print 1.. a < 0, print -1... a = 0, print 0. 

我还希望它采用矢量方式,如上图的 1s、0s 和 -1s。

我尝试了 for 循环,if 语句,但它似乎不起作用。

【问题讨论】:

  • ifelse 函数对向量进行操作,适用于此类更一般的问题。不过,@RHertel 的答案非常适合您的特定用例。

标签: r for-loop vector


【解决方案1】:

也许这会有所帮助:

b <- sign(a)
print(b)

【讨论】:

    【解决方案2】:
    # create some data for illustration
    a <- rnorm(100, 0, 56)
    print_a<-ifelse(x>0, 1, ifelse(x==0, 0, -1))
    print_a
    

    【讨论】:

    • 来自 VLQ 的问候“由于其长度和内容,此答案被标记为低质量。”可以考虑加一点解释吗?
    【解决方案3】:

    @Rhertel 的回答 +1 作为完成任务的快速方法。

    但是,如果您希望修复您的 for 循环,请发布您的代码。这是一个 for 循环的一般示例,用于实现您想要使用 iris 数据集执行的操作。

    library(datasets)
    for (i in diff(iris[,1])){
      if (i < 0){print(-1)}
      else if (i > 0){print(1)}
      else {print(0)}
    }
    

    【讨论】:

      猜你喜欢
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多