问题描述
第一次来这里呵呵。我知道我的问题可能是一个愚蠢的问题,但找不到我所调查的其他问题的答案。
我正在尝试将表示频段首选项的字符串矢量(来自较大的数据帧)转换为“ 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是一个问题/答案站点,在这里重要的是要提出特定的问题并专门回答这些问题,而不是邮件列表,因此这些详细信息不适合在此处包含。