我正在尝试为向量分配值,我尝试循环,但它不起作用?

时间:2015-07-30 16:13:43

标签: r for-loop vector

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

enter image description here

现在我应该发现基因数据不一致。基本上......给出正数为1,0,给出0,给出-1为负。我正在尝试做一个这样的命令:

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

我也希望它像1s,0s和-1s中的上图一样。

我尝试了for循环,if语句,但似乎没有用。

3 个答案:

答案 0 :(得分:6)

也许这会有所帮助:

b <- sign(a)
print(b)

答案 1 :(得分:1)

# create some data for illustration
a <- rnorm(100, 0, 56)
print_a<-ifelse(x>0, 1, ifelse(x==0, 0, -1))
print_a

答案 2 :(得分:0)

+1 @ Rhertel的回答是完成任务的快捷方式。

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

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