Data frame challenge [🇷 for BE/BA]

posted by mittyri – Russia, 2016-12-18 02:41 (2680 d 03:06 ago) – Posting: # 16851
Views: 4,018

Hi ElMaestro,

I'd like
A=read.table("SomeFile.csv", header=T, stringsAsFactors = F, sep=",")
apply(A, 2, function(x){
       as.numeric(replace(x,
         !grepl("[-]?[0-9]+[.]?[0-9]*|[-]?[0-9]+[L]?|[-]?[0-9]+[.]?[0-9]*[eE][0-9]+",x), 0))})


But more readable would be
A=read.table("SomeFile.csv", header=T, stringsAsFactors = F, sep=",")
checkandreplace <- function(x){
  # which values are looking not as a numeric?
  isnotnumeric <- !grepl("[-]?[0-9]+[.]?[0-9]*|[-]?[0-9]+[L]?|[-]?[0-9]+[.]?[0-9]*[eE][0-9]+",x)
  # we need to replace them with 0
  replaced0 <- replace(x, isnotnumeric, 0)
  # and to convert it all to numeric
  return(as.numeric(replaced0))
}
apply(A, 2, checkandreplace)


Enjoy!

Kind regards,
Mittyri

Complete thread:

UA Flag
Activity
 Admin contact
22,988 posts in 4,825 threads, 1,654 registered users;
114 visitors (0 registered, 114 guests [including 3 identified bots]).
Forum time: 06:48 CEST (Europe/Vienna)

The whole purpose of education is
to turn mirrors into windows.    Sydney J. Harris

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5