我想知道是否有办法通过中位数将列ddply转换为二进制模式。
具体来说,如果我有一个包含5列的数据框,而不是先计算像这样的中位数,然后做一些某种程度的lapply,我可以一步一步地做得更优雅吗?
medians <- apply(myData, 2, median)
lapply(1:5, function(x){ifelse(myData[,x]<medians[x], 0, 1)})
答案 0 :(得分:1)
以下是如何为虹膜数据集执行此操作:
iris[-5] <- lapply(iris[-5], function(x) as.integer(x > median(x)))
这样,您可以将逻辑条件(x>中位数(x))生成的逻辑向量转换为整数值(0/1)。