繁体   English   中英

如何使用 R 将 for 循环结果分配到向量中

[英]How to assing the for loop result into a vector with R

第一次来这里嘿嘿。 我知道我的问题可能是一个愚蠢的问题,但我无法找到我调查过的其他问题的答案。

我正在尝试将指示波段偏好的字符串向量(来自更大的数据框)转换为“1”和“0”,对于特定波段为 1,对于所有其他波段为 0。 但是,当我使用 print() 时,我的代码运行良好,但没有分配结果。 当我尝试使用 return() 或其他分配模式时,它会出现错误或只有一个值。 这是我的代码:

 for(x in ){
  if('Pb&C' %in% x){
print(1)} else{
print(0)}
}
}

如何将结果放入向量中?

我试过这些,但都有错误:

for (x in rejeicao) {
     if ('Pb&C' %in% x) {
   a <- return(1)
 }  else{
  a <- return(0)
}
}

a

并且:

for (x in rejeicao) {
     if ('Pb&C' %in% x) {
   a[x,] <- return(1)
 }  else{
  a[x,] <- return(0)
}
}

非常感谢您

R 是一种矢量化语言,因此您只需将测试结果分配给所需的变量即可。

此代码将产生 TRUE/FALSE 值。

a <- rejeicao == 'Pb&C'

为了转换为 0/1,我们使用在数学表达式中使用 TRUE 变为 1 而 FALSE 变为 0 的事实。

a <- (rejeicao == 'Pb&C')*1

您将想了解更多有关您尝试使用的其他关键字的信息,即%in%return ,因为我认为它们并没有像您认为的那样做。 但是 StackOverflow 是一个问答网站,重要的是要提出具体问题并具体回答,而不是邮件列表,因此这些细节不适合包含在此处。

暂无
暂无

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

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