# 将删除的部分用空白列代替 > invalidColumns <- apply(data[, -1], 2, function(column) {!checkColumn(column)}) Warning messages: 1: In min(column) : no non-missing arguments to min; returning Inf 2: In max(column) : no non-missing arguments to max; returning -Inf
时间: 2024-03-26 08:39:21 浏览: 61
Python-plydata在Python中进行数据操作的语法
这些警告信息是由于在使用min和max函数时,输入的数据中存在缺失值(NA),导致无法计算最小值和最大值。因此,在进行列的筛选时,如果存在缺失值,会导致checkColumn函数无法计算最小值和最大值,从而出现警告信息。建议在生成空白列之前,先对数据进行缺失值处理,例如使用na.omit函数将缺失值删除或使用其他方法进行填充。更改代码如下:
```
# 读取数据
data <- read.csv("one.csv")
# 定义一个函数,用于判断每一列中是否存在数字小于0或者大于0.8.
checkColumn <- function(column) {
# 删除缺失值
column <- na.omit(column)
# 判断是否存在数据
if (length(column) == 0) {
return(TRUE)
}
minVal <- min(column)
maxVal <- max(column)
if (minVal < 0 || maxVal > 0.8) {
return(FALSE)
} else {
return(TRUE)
}
}
# 筛选正式数据
validColumns <- apply(data[, -1], 2, checkColumn)
validData <- data[, c(TRUE, validColumns)]
# 将删除的部分用空白列代替
invalidColumns <- apply(data[, -1], 2, function(column) {!checkColumn(column)})
invalidData <- data.frame(matrix(NA, nrow = nrow(data), ncol = sum(invalidColumns)))
colnames(invalidData) <- colnames(data[, -1])[invalidColumns]
finalData <- cbind(data[, 1, drop = FALSE], validData, invalidData)
# 将处理后的数据保存为CSV格式的文件
write.csv(finalData, "processed_data.csv", row.names = FALSE)
```
通过在checkColumn函数中添加对缺失值处理的代码,并在生成空白列之前进行列筛选,可以避免在计算最小值和最大值时出现警告信息。同时,在checkColumn函数中添加对空列的处理,可以保证生成的空白列与原数据的列名对应。
阅读全文