删除R中的不变列
如果列对删除R中的不变列,r,R,如果列对[2:nrow(df),]是不变的,我想删除该列。] 就是不能让它工作。对于R和编程来说仍然是新的 red <- c(1, 2, 3) blue <- c(4, 5, 4) green <- c(4, 7, 2) colors <- data.frame(red, blue, green) colors <- t(colors) colors [,1] [,2] [,3] red 1 2 3 blue
[2:nrow(df),]是不变的,我想删除该列。]
就是不能让它工作。对于R和编程来说仍然是新的
red <- c(1, 2, 3)
blue <- c(4, 5, 4)
green <- c(4, 7, 2)
colors <- data.frame(red, blue, green)
colors <- t(colors)
colors
[,1] [,2] [,3]
red 1 2 3
blue 4 5 4
green 4 7 2
red要删除列,只需将对象重新分配给列:
colors <- colors[, -1]
colors
# [,1] [,2]
# red 2 3
# blue 5 4
# green 7 2
或者,如果您知道要保留的内容:
toKeep <- c( <whichever columns to keep> )
colors <- colors[, toKeep]
我怀疑头名称是导致代码失败的原因。除非您正在执行除Described之外的操作,否则您的代码将返回TRUE-FALSE并使用[,-todrop]给出预期结果。我的示例是toDrop[2]=头FALSE。当我执行df[,-toDrop]时,它返回一个包含0列的数据帧。所以它没有失败,但是它没有按预期的那样工作。你是对的。导致它失败的不是标题,而是某些东西。
toKeep <- c( <whichever columns to keep> )
colors <- colors[, toKeep]
toDrop <- apply(colors[2:nrow(colors), ], 2, function(x) all(duplicated(x)[-1] ))
# Optionally:
toDrop <- which(toDrop)
if (length(toDrop))
colors <- colors[, -toDrop]