我使用的数字数据的一些.csv
文件包含错误,每个错误都标记为随机字符串,例如在读入后,数据框可能如下所示:
set.seed(123)
rand.str <- paste0(letters[sample(10)], collapse="")
wrong.output <- data.frame(a=1:5, b=c(4:5, rand.str, 7:8), stringsAsFactors=FALSE)
在这种情况下,正确的输出是:
proper.output <- data.frame(a=1:5, b=c(4:5, NA, 7:8))
使用read.csv
阅读后,每列至少有一个字符值被视为character
列。
我可以在读入文件时将错误(随机字符串)标记为NA
吗?如果没有,用NA
来对它们进行子集化的最方便,最合适或最快的方法是什么?
na.strings
中有read.csv
个参数,但只有在更简单的情况下才能使用它,如:na.strings=c("-", "unavailable")
(看不到任何重复,所以我猜有简单的解决方法)
colClasses
建议不起作用
read.csv("test.txt", sep=",", colClasses = c("numeric", "numeric"))
扫描错误(file = file,what = what,sep = sep,quote = quote,dec = dec,: scan()期待&#39;真正的&#39;,得到&#39; chdgfajibe&#39; 另外:警告信息: 在read.table(file = file,header = header,sep = sep,quote = quote,: readTableHeader在&#39; test.txt&#39;
上找到的不完整的最后一行
答案 0 :(得分:1)
我从7年前的csv阅读的不同解决方案中改编了这个解决方案。我认为这是一个更清洁的解决方案。它可以提供您想要的输出。
setClass("Alpha")
# replacing words with empty characters
setAs("character", "Alpha",
function(from) as.numeric(gsub('[[:alpha:]]+', '', from) ) )
read.csv('data.csv', colClasses = c('numeric','Alpha'))
输出
a b
1 1 4
2 2 5
3 3 NA
4 4 7
5 5 8
来源:How to read data when some numbers contain commas as thousand separator?
答案 1 :(得分:0)
解决方案是:
String isFormAlreadySubmitted = driver.findElement(By.xpath("//div[@class='alert alert-error' or @class='alert alert-success']")).getText()