R中的字符向量和二进制数向量的乘积

时间:2014-03-01 18:37:05

标签: r

我有一个字符向量和一个二进制数向量,如:

char <- paste("item", 1:4, sep="")
bnum <- c(1, 0, 0, 1)

我希望得到如下结果:

[1] "item1" 0 0 "item4"

确实,我的最终目标是产生:

[1] "item1-item4"

我认为任务1生成矢量“ans”,然后第二个任务的代码将是:

ans<- c("item1",0,0,"item4","item5")
ans2<-ans[ans!=0]
n<-length(ans2)
ans3<-ans2[1]
for (i in 2:n){
    ans3 <- paste(ans3,ans2[i],sep="-")
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

char[as.logical(bnum)]

paste(char[as.logical(bnum)], collapse="-")
#[1] "item1-item4"

答案 1 :(得分:1)

char <- paste("item", 1:4, sep="")
bnum <- c(1, 0, 0, 1)

paste(char[bnum == 1], collapse = '-')