r - 如果元素是同一个向量的一部分,如何创建一个带有 1 的二进制向量?

标签 r binary matching

我想创建一个由二进制文件组成的所谓匹配向量。除非元素属于同一变量,否则所有数字都应为零。

下面是一个例子:

dataset=("a","b","c","d","x","y","z")
var1=c("a","b","y","z")
var2=c("c","d","x")

因此,我有一个数据集,其中包含第一行中的所有变量。现在我创建两个组:var1 和 var2。

元素“a”的匹配向量应该如下所示:
matching_a=c(1,1,0,0,0,1,1)

这些数字对应于我的数据集。如果数据集中的变量在同一组中,则匹配向量中应为 1,否则为 0。

但是,我的实际数据集太大而无法手动完成。有人明白我想做什么吗?

最佳答案

> output1 = 1 * dataset %in% var1
> output2 = 1 * dataset %in% var2
> output1
[1] 1 1 0 0 0 1 1
> output2
[1] 0 0 1 1 1 0 0

此外,如果您要进行的比赛比 var1 多得多和 var2 ,将其扩展为以下内容会很有用:
> vars = list(var1, var2)
> 1 * sapply(vars, function(x) dataset %in% x)
     [,1] [,2]
[1,]    1    0
[2,]    1    0
[3,]    0    1
[4,]    0    1
[5,]    0    1
[6,]    1    0
[7,]    1    0

关于r - 如果元素是同一个向量的一部分,如何创建一个带有 1 的二进制向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021633/

相关文章:

r - 增强 ggvis 轴

java - 为什么这个程序会根据用户输入的位数重复答案?

algorithm - 我该如何着手构建匹配算法?

r - ggplot 绘图中的字体大小与使用 knitr 的绘图有关

r - 如何从 R 文本中提取 ngram(报纸文章)

bash - 不能 `source` shc 编译的脚本

c - fwrite 文件输出错误

algorithm - 查找对应于总和列表的一组对

Java字符串换行/缩进匹配

r - 仅在文件丢失时下载该文件