我正在使用R来完成一些GA驱动的搜索。
从我的GA脚本返回的是生成的染色体,以长度为40的二进制数字返回。
一个例子是:c(0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0)
。
我还有一个包含40列的相应数据框。
使用数值向量中的数据,如何有效地构建(或重新构建)数据框,使其仅包含数字向量中1表示的列?
答案 0 :(得分:1)
构建示例data.frame并将示例向量分配给x:
df <- as.data.frame(matrix(sample(1:100, 400, replace=T), ncol=40))
x <- c(0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0)
我可以分组:
df[ ,x==1]
或:
df[, as.logical(x)]