当数据中没有缺失值时,由强制引入的NA - R

时间:2018-02-18 12:29:00

标签: r warnings na

我正在运行以下代码:

 unique(is.na(mydataframe$var1)) #FALSE
 anyNA(mydataframe$var1) #FALSE
 mydataframe$var1 <-as.numeric(as.character(mydataframe$var1))

如果该列中没有缺少值,我不确定为什么会收到警告消息NAs introduced by coercion。任何可能的解释?

编辑: 如果我运行dput(head(mydataframe$var1,5)),这就是我得到的:

structure(c(87L, 124L, 472L, 920L, 199L), .Label = c(".", "0", 
"0.01", "0.02", "0.03", "0.04", "0.05", "0.06", "0.07", "0.08", 
"0.09", "0.1", "0.11", "0.12", "0.13", "0.14", "0.15", "0.16", 
"0.17", "0.18", "0.19", "0.2", "0.21", "0.22", "0.23", "0.24", 
"0.25", "0.26", "0.27", "0.28", "0.29", "0.3", "0.31", "0.32", 
"0.33", "0.34", "0.35", "0.36", "0.37", "0.38", "0.39", "0.4", 
"0.41", "0.42", "0.43", "0.44", "0.45", "0.46", "0.47", "0.48", 
"0.49", "0.5", "0.51", "0.52", "0.53", "0.54", "0.55", "0.56", 
"0.57", "0.58", "0.59", "0.6", "0.61", "0.62", "0.63", "0.64", 
"0.65", "0.66", "0.67", "0.68", "0.69", "0.7", "0.71", "0.72", 
"0.73", "0.74", "0.75", "0.76", "0.77", "0.78", "0.79", "0.8", 
"0.81", "0.82", "0.83", "0.84", "0.85", "0.86", "0.87", "0.88", 
"0.89", "0.9", "0.91", "0.92", "0.93", "0.94", "0.95", "0.96", 
"0.97", "0.98", "0.99", "1", "1.01", "1.02", "1.03", "1.04", 
"1.05", "1.06", "1.07", "1.08", "1.09", "1.1", "1.11", "1.12", 
"1.13", "1.14", "1.15", "1.16", "1.17", "1.18", "1.19", "1.2", 
"1.21", "1.22", "1.23", "1.24", "1.25", "1.26", "1.27", "1.28", 
"1.29", "1.3", "1.31", "1.32", "1.33", "1.34", "1.35", "1.36", 
"1.37", "1.38", "1.39", "1.4", "1.41", "1.42", "1.43", "1.44", 
"1.45", "1.46", "1.47", "1.48", "1.49", "1.5", "1.51", "1.52", 
"1.53", "1.54", "1.55", "1.56", "1.57", "1.58", "1.59", "1.6", 
"1.61", "1.62", "1.63", "1.64", "1.65", "1.66", "1.67", "1.68", 
"1.69", "1.7", "1.71", "1.72", "1.73", "1.74", "1.75", "1.76", 
"1.77", "1.78", "1.79", "1.8", "1.81", "1.82", "1.83", "1.84", 
"1.85", "1.86", "1.87", "1.88", "1.89", "1.9", "1.91", "1.92", 
"1.93", "1.94", "1.95", "1.96", "1.97", "1.98", "1.99", "10.08", 
"10.11", "10.12", "10.15", "10.16", "10.17", "10.19", "10.22", 
"10.23", "10.25", "10.27", "10.32", "10.33", "10.34", "10.4", 
"10.42", "10.43", "10.45", "10.47", "10.48", "10.5", "10.52", 
"10.56", "10.58", "10.6", "10.63", "10.64", "10.65", "10.69", 
"10.7", "10.75", "10.78", "10.83", "10.87", "10.93", "10.97", 
"10.98", "10.99", "11.01", "11.02", "11.05", "11.06", "11.1", 
"11.12", "11.17", "11.19", "11.24", "11.27", "11.3", "11.31", 
"11.34", "11.35", "11.36", "11.37", "11.38", "11.39", "11.4", 
"11.42", "11.43", "11.46", "11.48", "11.5", "11.51", "11.52", 
"11.53", "11.56", "11.61", "11.69", "11.72", "11.73", "11.75", 
"11.77", "11.79", "11.84", "11.85", "11.89", "11.92", "11.93", 
"11.96", "11.97", "11.98", "12.02", "12.05", "12.06", "12.1", 
"12.12", "12.13", "12.14", "12.17", "12.2", "12.22", "12.23", 
"12.25", "12.31", "12.33", "12.34", "12.35", "12.36", "12.41", 
"12.44", "12.48", "12.49", "12.52", "12.53", "12.54", "12.57", 
"12.58", "12.63", "12.65", "12.67", "12.71", "12.72", "12.75", 
"12.77", "12.78", "12.85", "12.86", "12.87", "12.88", "12.91", 
"12.95", "12.96", "13.02", "13.04", "13.08", "13.12", "13.17", 
"13.19", "13.2", "13.21", "13.24", "13.26", "13.28", "13.3", 
"13.31", "13.33", "13.34", "13.41", "13.45", "13.47", "13.5", 
"13.52", "13.53", "13.59", "13.63", "13.65", "13.66", "13.67", 
"13.69", "13.75", "13.79", "13.88", "13.89", "13.9", "13.91", 
"13.94", "13.95", "13.97", "14", "14.01", "14.03", "14.05", "14.07", 
"14.08", "14.1", "14.15", "14.16", "14.18", "14.19", "14.2", 
"14.22", "14.23", "14.25", "14.3", "14.31", "14.33", "14.35", 
"14.38", "14.48", "14.53", "14.54", "14.55", "14.56", "14.57", 
"14.61", "14.63", "14.79", "14.81", "14.88", "14.96", "14.98", 
"15", "15.01", "15.1", "15.11", "15.19", "15.27", "15.3", "15.32", 
"15.33", "15.36", "15.44", "15.45", "15.64", "15.65", "15.66", 
"15.69", "15.76", "15.79", "15.85", "15.98", "16.07", "16.1", 
"16.11", "16.16", "16.25", "16.31", "16.4", "16.44", "16.51", 
"16.59", "16.87", "16.88", "16.89", "16.99", "17.02", "17.06", 
"17.11", "17.13", "17.15", "17.24", "17.51", "17.63", "17.65", 
"17.68", "17.76", "17.79", "17.81", "17.85", "17.97", "18.17", 
"18.32", "18.38", "18.43", "18.62", "18.71", "18.79", "18.86", 
"18.87", "18.93", "18.98", "19", "19.01", "19.05", "19.1", "19.15", 
"19.22", "19.28", "19.63", "19.96", "2", "2.01", "2.02", "2.03", 
"2.04", "2.05", "2.06", "2.07", "2.08", "2.09", "2.1", "2.11", 
"2.12", "2.13", "2.14", "2.15", "2.16", "2.17", "2.18", "2.19", 
"2.2", "2.21", "2.22", "2.23", "2.24", "2.25", "2.26", "2.27", 
"2.28", "2.29", "2.3", "2.31", "2.32", "2.33", "2.34", "2.35", 
"2.36", "2.37", "2.38", "2.39", "2.4", "2.41", "2.42", "2.43", 
"2.44", "2.45", "2.46", "2.47", "2.48", "2.49", "2.5", "2.51", 
"2.52", "2.53", "2.54", "2.55", "2.56", "2.57", "2.58", "2.59", 
"2.6", "2.61", "2.62", "2.63", "2.64", "2.65", "2.66", "2.67", 
"2.68", "2.69", "2.7", "2.71", "2.72", "2.73", "2.74", "2.75", 
"2.76", "2.77", "2.78", "2.79", "2.8", "2.81", "2.82", "2.83", 
"2.84", "2.85", "2.86", "2.87", "2.88", "2.89", "2.9", "2.91", 
"2.92", "2.93", "2.94", "2.95", "2.96", "2.97", "2.98", "2.99", 
"20.02", "20.45", "20.65", "21.59", "21.7", "21.72", "22.86", 
"22.94", "23.45", "23.8", "24.52", "24.73", "25.44", "26.6", 
"29.26", "3", "3.01", "3.02", "3.03", "3.04", "3.05", "3.06", 
"3.07", "3.08", "3.09", "3.1", "3.11", "3.12", "3.13", "3.14", 
"3.15", "3.16", "3.17", "3.18", "3.19", "3.2", "3.21", "3.22", 
"3.23", "3.24", "3.25", "3.26", "3.27", "3.28", "3.29", "3.3", 
"3.31", "3.32", "3.33", "3.34", "3.35", "3.36", "3.37", "3.38", 
"3.39", "3.4", "3.41", "3.42", "3.43", "3.44", "3.45", "3.46", 
"3.47", "3.48", "3.49", "3.5", "3.51", "3.52", "3.53", "3.54", 
"3.55", "3.56", "3.57", "3.58", "3.59", "3.6", "3.61", "3.62", 
"3.63", "3.64", "3.65", "3.66", "3.67", "3.68", "3.69", "3.7", 
"3.71", "3.72", "3.73", "3.74", "3.75", "3.76", "3.77", "3.78", 
"3.79", "3.8", "3.81", "3.82", "3.83", "3.84", "3.85", "3.86", 
"3.87", "3.88", "3.89", "3.9", "3.91", "3.92", "3.93", "3.94", 
"3.95", "3.96", "3.97", "3.98", "3.99", "31.28", "32.91", "33.93", 
"35.62", "37.06", "37.17", "39.18", "4", "4.01", "4.02", "4.03", 
"4.04", "4.05", "4.06", "4.07", "4.08", "4.09", "4.1", "4.11", 
"4.12", "4.13", "4.14", "4.15", "4.16", "4.17", "4.18", "4.19", 
"4.2", "4.21", "4.22", "4.23", "4.24", "4.25", "4.26", "4.27", 
"4.28", "4.29", "4.3", "4.31", "4.32", "4.33", "4.34", "4.35", 
"4.36", "4.37", "4.38", "4.39", "4.4", "4.41", "4.42", "4.43", 
"4.44", "4.45", "4.46", "4.47", "4.48", "4.49", "4.5", "4.51", 
"4.52", "4.53", "4.54", "4.55", "4.56", "4.57", "4.58", "4.59", 
"4.6", "4.61", "4.62", "4.63", "4.64", "4.65", "4.66", "4.67", 
"4.68", "4.69", "4.7", "4.71", "4.72", "4.73", "4.74", "4.75", 
"4.76", "4.77", "4.78", "4.79", "4.8", "4.81", "4.82", "4.83", 
"4.84", "4.85", "4.86", "4.87", "4.88", "4.89", "4.9", "4.91", 
"4.92", "4.93", "4.94", "4.95", "4.96", "4.97", "4.98", "4.99", 
"5", "5.01", "5.02", "5.03", "5.04", "5.05", "5.06", "5.07", 
"5.08", "5.09", "5.1", "5.11", "5.12", "5.13", "5.14", "5.15", 
"5.16", "5.17", "5.18", "5.19", "5.2", "5.21", "5.22", "5.23", 
"5.24", "5.25", "5.26", "5.27", "5.28", "5.29", "5.3", "5.31", 
"5.32", "5.33", "5.34", "5.35", "5.36", "5.37", "5.38", "5.39", 
"5.4", "5.41", "5.42", "5.43", "5.44", "5.45", "5.46", "5.47", 
"5.48", "5.49", "5.5", "5.51", "5.52", "5.53", "5.54", "5.55", 
"5.56", "5.57", "5.58", "5.59", "5.6", "5.61", "5.62", "5.63", 
"5.64", "5.65", "5.66", "5.67", "5.68", "5.69", "5.7", "5.71", 
"5.72", "5.73", "5.74", "5.75", "5.76", "5.77", "5.78", "5.79", 
"5.8", "5.81", "5.82", "5.83", "5.84", "5.85", "5.86", "5.87", 
"5.88", "5.89", "5.9", "5.91", "5.92", "5.93", "5.94", "5.95", 
"5.96", "5.97", "5.98", "5.99", "6", "6.01", "6.02", "6.03", 
"6.04", "6.05", "6.06", "6.07", "6.08", "6.09", "6.1", "6.11", 
"6.12", "6.13", "6.14", "6.15", "6.16", "6.17", "6.18", "6.19", 
"6.2", "6.21", "6.22", "6.23", "6.24", "6.25", "6.26", "6.27", 
"6.28", "6.29", "6.3", "6.31", "6.32", "6.33", "6.34", "6.35", 
"6.36", "6.37", "6.38", "6.39", "6.4", "6.42", "6.43", "6.44", 
"6.45", "6.46", "6.47", "6.48", "6.49", "6.5", "6.51", "6.52", 
"6.53", "6.54", "6.55", "6.56", "6.57", "6.58", "6.59", "6.6", 
"6.61", "6.62", "6.63", "6.64", "6.65", "6.66", "6.67", "6.68", 
"6.7", "6.71", "6.72", "6.73", "6.74", "6.75", "6.76", "6.77", 
"6.79", "6.8", "6.81", "6.82", "6.83", "6.85", "6.86", "6.88", 
"6.89", "6.9", "6.91", "6.92", "6.93", "6.94", "6.95", "6.96", 
"6.97", "6.98", "6.99", "7", "7.01", "7.02", "7.04", "7.05", 
"7.06", "7.07", "7.08", "7.09", "7.1", "7.11", "7.12", "7.13", 
"7.14", "7.15", "7.16", "7.17", "7.18", "7.19", "7.2", "7.21", 
"7.22", "7.23", "7.24", "7.25", "7.26", "7.27", "7.28", "7.29", 
"7.3", "7.31", "7.32", "7.33", "7.34", "7.35", "7.36", "7.38", 
"7.39", "7.4", "7.41", "7.42", "7.43", "7.44", "7.45", "7.46", 
"7.48", "7.49", "7.5", "7.51", "7.52", "7.53", "7.54", "7.55", 
"7.56", "7.58", "7.59", "7.6", "7.61", "7.62", "7.64", "7.65", 
"7.67", "7.68", "7.69", "7.7", "7.72", "7.73", "7.74", "7.75", 
"7.77", "7.78", "7.79", "7.8", "7.82", "7.83", "7.85", "7.86", 
"7.87", "7.88", "7.9", "7.92", "7.94", "7.97", "7.98", "7.99", 
"8", "8.01", "8.02", "8.04", "8.05", "8.06", "8.07", "8.11", 
"8.13", "8.14", "8.15", "8.16", "8.17", "8.18", "8.19", "8.2", 
"8.22", "8.23", "8.24", "8.26", "8.27", "8.28", "8.29", "8.3", 
"8.31", "8.32", "8.33", "8.35", "8.36", "8.37", "8.38", "8.39", 
"8.4", "8.42", "8.43", "8.44", "8.45", "8.47", "8.49", "8.51", 
"8.52", "8.53", "8.54", "8.56", "8.57", "8.59", "8.6", "8.61", 
"8.62", "8.63", "8.64", "8.69", "8.7", "8.71", "8.73", "8.74", 
"8.77", "8.78", "8.79", "8.81", "8.82", "8.87", "8.89", "8.9", 
"8.91", "8.92", "8.93", "8.94", "8.95", "8.96", "8.98", "8.99", 
"9.01", "9.03", "9.05", "9.06", "9.07", "9.1", "9.12", "9.15", 
"9.16", "9.17", "9.2", "9.21", "9.22", "9.23", "9.25", "9.26", 
"9.27", "9.28", "9.31", "9.36", "9.37", "9.39", "9.4", "9.41", 
"9.44", "9.47", "9.48", "9.5", "9.52", "9.53", "9.54", "9.56", 
"9.57", "9.58", "9.6", "9.61", "9.62", "9.64", "9.65", "9.66", 
"9.68", "9.69", "9.71", "9.75", "9.76", "9.79", "9.81", "9.82", 
"9.83", "9.87", "9.89", "9.9", "9.91", "9.96", "9.97", "9.98"
), class = "factor")

任何避免NA的解决方案?

2 个答案:

答案 0 :(得分:1)

原因似乎是因为数据混合了数字和整数。转换包含整数的字符,例如(1L, 2L)等时,在使用as.numeric转换时会发出警告: “通过胁迫引入的NAs”

one can check it:
> as.numeric("1L")
[1] NA
Warning message:
NAs introduced by coercion

答案 1 :(得分:1)

也许我错了,但似乎你有一个等于"."的因子等级。尝试强制执行此操作时numeric R引入NA值,因为点不是数字。

如果是这种情况,以下代码可能会解决问题。

tmp <- levels(mydataframe$var1)[mydataframe$var1]
tmp[grep("^\\.$", tmp)] <- "0.0"
mydataframe$var1 <- as.numeric(tmp)
rm(tmp)    # tidy up