如何根据数字向量中标识的列重建数据框?

时间:2012-02-28 18:35:48

标签: r dataframe

我正在使用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表示的列?

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)]