R for循环中的if-else语句

R for循环中的if-else语句,r,R,我有一个由3列组成的数据表,分配给变量g g # V1 V2 V3 # [1,] 1 Yes 3 # [2,] 4 No 6 # [3,] 7 No 9 # ... 我试图创建一个列表m,通过检查g[,2]中的值是“是”还是“否”,然后将一些字符串粘贴到m中 m <- for(i in 1:nrow(g)){ if(g[i,2]=='No'){ paste0("ABC", g[i,1], "DEF", g[i,2], "GHI", g[i,

我有一个由3列组成的数据表,分配给变量g

g
#      V1   V2 V3
# [1,]  1  Yes  3
# [2,]  4   No  6
# [3,]  7   No  9
# ...
我试图创建一个列表m,通过检查g[,2]中的值是“是”还是“否”,然后将一些字符串粘贴到m中

m <- for(i in 1:nrow(g)){
  if(g[i,2]=='No'){
    paste0("ABC", g[i,1], "DEF", g[i,2], "GHI", g[i,3],"\n")
  } else if(g[i,2]=='Yes'){
    paste0("GHI", g[i,1], "DEF", g[i,2], "ABC", g[i,3],"\n")
  } else {NULL}
}

m
# NULL

有人能指出我做错了什么吗?多谢各位

A
for
循环不会在R中返回任何内容。通常,您需要更新另一个变量,以便在
for
循环之后继续使用。例如:

m <- "intialize" # initialize, sometimes better as just `list()`
for(i in 1:nrow(g)){
  if(g[i,2]=='No'){
    # paste into position i of vector m
    m[i] <- paste0("ABC", g[i,1], "DEF", g[i,2], "GHI", g[i,3],"\n") 
  } else if(g[i,2]=='Yes'){
    # paste into position i of vector m
    m[i] <- paste0("ABC", g[i,1], "DEF", g[i,2], "GHI", g[i,3],"\n")
  } else {
  NULL
  }
}
m
> ... 
m
m <- "intialize" # initialize, sometimes better as just `list()`
for(i in 1:nrow(g)){
  if(g[i,2]=='No'){
    # paste into position i of vector m
    m[i] <- paste0("ABC", g[i,1], "DEF", g[i,2], "GHI", g[i,3],"\n") 
  } else if(g[i,2]=='Yes'){
    # paste into position i of vector m
    m[i] <- paste0("ABC", g[i,1], "DEF", g[i,2], "GHI", g[i,3],"\n")
  } else {
  NULL
  }
}
m
> ...