如何使用R

时间:2018-05-09 11:53:31

标签: r loops

我必须创建一个循环,但我不知道如何命令R我想做什么。

for(i in 1:nrow(File1))
  for(j in 1:ncol(File2)){
    if [(x(i,1)==(cd(1,j)))] # Until here I think it is ok
             THEN            # I don't know what is the command for THEN in R
      for (k in File3) #I have to take all the data appearing in File3

Output (k,1)= K # I don't know what is the command to order the output in R
Output (k,2)= cd(1,j)
Output (k,3)= x(i,2)
Output (k,4)= x(i,3)
Output (k,5)= x(i,4)
Output (k,6)= cd(1,j)

我如何完成循环?

先谢谢,我有点困惑

2 个答案:

答案 0 :(得分:1)

所以这是一个基本的for循环,只打印出值。

data <- cbind(1:10); 
for (i in 1:nrow(data)) {
  print(i)
}

如果要保存输出,则必须初始化矢量/列表/矩阵等:

output <- vector()
for (i in 1:nrow(data)) {
  k[i] <- i
}
k

嵌套循环的一个小例子:

data <- cbind(1:5); 
data1 <- cbind(15:20)
data2 <- cbind(25:30)
for (i in 1:nrow(data)) {
  print(paste("FOR 1: ", i))
  for (j in 1:nrow(data1)) {
    print(paste("FOR 2: ", j))
    for (k in 1:nrow(data2)) {
      cat(paste("FOR 3: ", k, "\n"))
    }
  }
}

但正如已经提到的,你可能会更好地使用“应用”功能(应用,蓝宝石,lapply等)。看看这篇文章:Apply-Family

或者将dplyr包与管道(%&gt;%)运算符一起使用。

在循环中包含一些if / else-synthax:

data <- cbind(1:5); 
data1 <- cbind(15:20)
data2 <- cbind(25:30)

for (i in 1:nrow(data)) {
  if (i == 1) {
    print("i is 1")
  } else {
    print("i is not 1")
  }
  for (j in 1:nrow(data1)) {
    print(paste("FOR 2: ", j))
    for (k in 1:nrow(data2)) {
      cat(paste("FOR 3: ", k, "\n"))
    }
  }
}

在第一个循环中,我问我是不是1。 如果是,则使用第一个print语句(“i为1”),否则使用第二个(“i is not 1”)。

答案 1 :(得分:0)

R Repeat循环语句 只要条件满足,R While循环就会在循环中重复执行一组语句。我们将学习使用R示例脚本的while循环的语法,执行流程

Reference Site