当尝试使用 as.numeric 将一列字符(数字字符串,例如“0.1234”)转换为数字时,某些值会返回NA警告“强制转换引入的 NA”。作为 s 返回的字符NA似乎与正确作为数字返回的字符没有任何不同。有谁知道可能是什么问题?
已经尝试查找任何可以隐藏在某些值中的非数字字符(如 \',\')。我确实找到了包含“-”(例如“-0.123”)的字符串确实变成了NAs,但这些只是变成了NAs的字符串的一部分。另外,尝试寻找字符串内的空格。这似乎也不是问题。
data$y\n [1] "0.833250539" "0.820323535" "0.462284612" "0.792943985" "0.860587952" "0.729665177" "0.461503956" "0.625871118" \n [9] "0.740999346" "0.962727964" "0.971089266" "0.869004848" "0.828651766" "0.900648732" "0.970326033" "0.898123286" \n[17] "0.911640765" "0.902442126" "0.843392097" "0.763421844" "0.892426243" "0.380433624" "0.925017633" "0.725470821" \n[25] "0.699924767" "0.689061225" "0.907462936" "0.888064239" "0.913547115" "-\xe2\x80\xac0.625103904\xe2\x80\xad" "0.897385961" "0.889727462" \n[33] "0.90127339" "0.947012474" "0.948883588" "0.845845512" "0.97866966" "0.796247738" "0.864627056" "0.266656189\xe2\x80\xad" \n[41] "0.894915463" "0.969690678" "0.771365656\xe2\x80\xad" "0.88304436" "0.954039006" "0.836952199" "0.731558669\xe2\x80\xad" "0.907224294" \n[49] "0.622059127" "0.887742343" "0.917550343" "0.97240334\xe2\x80\xad" "0.902841957" "0.617403052" "0.82926708" "0.674903846" \n[57] "0.947132958" "0.929213613\xe2\x80\xad" "-\xe2\x80\xac0.297844476" "0.871767367"\n\ny = as.numeric(data$y)\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n警告消息:\n 强制引入的 NA
\n
y\n [1] 0.8332505 0.8203235 0.4622846 0.7929440 0.8605880 0.7296652 0.4615040 0.6258711 0.7409993 0.9627280 0.9710893 0.8690048 0.8286518\n[14] 0.9006487 0.9703260 0.8981233 0.9116408 0.9024421 0.8433921 0.7634218 0.8924262 0.3804336 0.9250176 0.7254708 0.6999248 0.6890612\n[27] 0.9074629 0.8880642 0.9135471 NA 0.8973860 0.8897275 0.9012734 0.9470125 0.9488836 0.8458455 0.9786697 0.7962477 0.8646271\n[40] NA 0.8949155 0.9696907 NA 0.8830444 0.9540390 0.8369522 NA 0.9072243 0.6220591 0.8877423 0.9175503 NA\n[53] 0.9028420 0.6174031 0.8292671 0.6749038 0.9471330 NA NA 0.8717674\nRun Code Online (Sandbox Code Playgroud)\n
您的字符串包含一些非 unicode 字符。如果您确定删除它们是安全的,请使用
as.numeric(iconv(data$y, 'utf-8', 'ascii', sub=''))
Run Code Online (Sandbox Code Playgroud)
转换参考