如何通过仅采用此数据框中 2 列的非 NA 值来对数据框进行子集化
How to subset a data frame by taking only the Non NA values of 2 columns in this data frame
我正在尝试通过从我的数据框中获取 2 列的整数值来对数据框进行子集化
Subs1<-subset(DATA,DATA[,2][!is.na(DATA[,2])] & DATA[,3][!is.na(DATA[,3])])
但它给我一个错误:较长的对象长度不是较短的对象长度的倍数。
如何构造一个由第 2 列和第 3 列的 NON NA 值组成的子集?
非常感谢?
试试这个:
Subs1<-subset(DATA, (!is.na(DATA[,2])) & (!is.na(DATA[,3])))
subset
的第二个参数是nrow(DATA)
等长的逻辑向量,表示是否保留对应的行
举个例子。
a,b,c 是 3 个向量,其中 a 和 b 具有缺失值。
创建它们后,我使用 cbind 将它们绑定到一个矩阵中,之后您可以将其转换为数据框。
最终结果是一个数据框,其中 3 列中有 2 列缺少值。
所以我们只需要保留具有完整案例的行。使用 DATA[complete.cases(DATA), ]
是为了只保留这些在每一列中没有缺失值的行。 subset
对象是这些具有完整案例的行。
a <- c(1,NA,2)
b <- c(NA,1,2)
c <- c(1,2,3)
DATA <- as.data.frame(cbind(a,b,c))
subset <- DATA[complete.cases(DATA), ]
na.omit 函数可以回答您的问题
Subs1 <- na.omit(DATA[2:3])
[https://stat.ethz.ch/R-manual/R-patched/library/stats/html/na.fail.html]
我正在尝试通过从我的数据框中获取 2 列的整数值来对数据框进行子集化
Subs1<-subset(DATA,DATA[,2][!is.na(DATA[,2])] & DATA[,3][!is.na(DATA[,3])])
但它给我一个错误:较长的对象长度不是较短的对象长度的倍数。
如何构造一个由第 2 列和第 3 列的 NON NA 值组成的子集?
非常感谢?
试试这个:
Subs1<-subset(DATA, (!is.na(DATA[,2])) & (!is.na(DATA[,3])))
subset
的第二个参数是nrow(DATA)
等长的逻辑向量,表示是否保留对应的行
举个例子。 a,b,c 是 3 个向量,其中 a 和 b 具有缺失值。 创建它们后,我使用 cbind 将它们绑定到一个矩阵中,之后您可以将其转换为数据框。
最终结果是一个数据框,其中 3 列中有 2 列缺少值。
所以我们只需要保留具有完整案例的行。使用 DATA[complete.cases(DATA), ]
是为了只保留这些在每一列中没有缺失值的行。 subset
对象是这些具有完整案例的行。
a <- c(1,NA,2)
b <- c(NA,1,2)
c <- c(1,2,3)
DATA <- as.data.frame(cbind(a,b,c))
subset <- DATA[complete.cases(DATA), ]
na.omit 函数可以回答您的问题
Subs1 <- na.omit(DATA[2:3])
[https://stat.ethz.ch/R-manual/R-patched/library/stats/html/na.fail.html]