在R中使用complete.cases时,data.frame的行为有何不同?

时间:2018-03-20 00:54:59

标签: r dataframe

我想知道为什么 First 方法正常但第二方法失败了?无论如何,要使第二种方法的输出变得像第一种方法:

#First:

data <- mtcars["wt"]
d <- scale(data)
data[, paste0(names(data), ".bbb") ] <- c(d)
data

#Secondt:

data <- mtcars["wt"]
data <- data[complete.cases(data), ]  ## THIS LINE is the only difference with ABOVE ##
d <- scale(data)
data[, paste0(names(data), ".bbb") ] <- c(d)
data

1 个答案:

答案 0 :(得分:1)

因为您只有一列,所以您需要这样做:

data <- mtcars["wt"]
data <- data[complete.cases(data), , drop = FALSE]  ## THIS LINE is the only difference with ABOVE ##
d <- scale(data)
data[, paste0(names(data), ".bbb") ] <- c(d)
data

否则:

data <- mtcars["wt"]
data <- data[complete.cases(data),]
str(data)
# num [1:32] 2.62 2.88 2.32 3.21 3.44 ...

你有一个载体