R ddply列成二进制

时间:2015-03-17 18:05:12

标签: r dataframe

我想知道是否有办法通过中位数将列ddply转换为二进制模式。

具体来说,如果我有一个包含5列的数据框,而不是先计算像这样的中位数,然后做一些某种程度的lapply,我可以一步一步地做得更优雅吗?

medians <- apply(myData, 2, median)
lapply(1:5, function(x){ifelse(myData[,x]<medians[x], 0, 1)})

1 个答案:

答案 0 :(得分:1)

以下是如何为虹膜数据集执行此操作:

iris[-5] <- lapply(iris[-5], function(x) as.integer(x > median(x)))

这样,您可以将逻辑条件(x>中位数(x))生成的逻辑向量转换为整数值(0/1)。