df <- data.frame(team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8),
                 rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11),
                 assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14))

#view data frame
summary(df)  # start her, viser om nogle kolonnetyper er forkerte, viser om NA felter findes
df

library(dplyr)
#remove rows with missing values
df1<- df %>% na.omit()
df1



library(tidyr)
median(df$points,na.rm=TRUE) #så bortses fra AN felter
#replace missing values in each numeric column with median value of column
df2 <-df %>% mutate(across(where(is.numeric),~replace_na(.,median(.,na.rm=TRUE)))) # . Reference til aktuelle kolonne
df2
#Extracting/finding Rows with Missing Values in R

df <- data.frame(x = c(1:4,'\t', NA),    # Our data frame, 1-5, NA sidste row
                    y = c(NA,'', 1:4),   # først NA, så 1,..,5
                    z = c(NA, NA, 2:5))

df 
" x    y  z
1    1 <NA> NA
2    2      NA
3    3    1  2
4    4    2  3
5   \t    3  4
6 <NA>    4  5"
summary(df)  # x og y-kolonnen opfattes com char, derfor <NA>
df$x <- as.numeric(df$x) 
df[,2]
dim(df)[2]
#omdanner alle numeric column til numeric
for (i in 1:dim(df)[2]) {
  df[,i] <- as.numeric(df[,i]) 
}
df
summary(df)

df$y[2] <-""
df$y
library(readr)
write_csv(df, "./data/baddata2.csv")
"
x,y,z
1,NA,NA
2,,NA
3,2,2
4,3,3
	,4,4
NA,5,5
"
library(openxlsx)
write.xlsx(df, './data/baddata2.xlsx')  #tomt felt, \t og NA felt bliver til NA i dataframe
ex <- read.xlsx(xlsxFile = "./data/baddata2.xlsx") #space felt , , fortolkes som space-string,len=0
ex
summary(ex)
ex$x[5] <-""   #omdannes felt, så omdannes x til char type:
"
     x  y  z
1    1 NA NA
2    2  1 NA
3    3  2  2
4    4  3  3
5       4  4
6 <NA>  5  5
"
ex$x <- as.numeric(ex$x)  #erstatter tomt felt x[5] med NA, virker: numeric type med 2 NA
summary(ex)
ex


bd <- read.csv("~/programmering/R/data/bad_data.csv");bd  #bad_data fil, med , , felter og NA
bd
summary(bd)

library(openxlsx)
ex <- read.xlsx(xlsxFile = "./data/bad_data.xlsx") #space felt , , fortolkes som space-string 
ex
summary(ex) #her ses at y-kol opfattes som strings

# excelfilmappe----  
#‘C:\\Users\\bh\\Documents\\programmering\\Excel\\’

str <- read.xlsx(xlsxFile = "C:\\Users\\bh\\Documents\\programmering\\Excel\\Strings.xlsx")
str

which(is.na(ex), arr.ind = TRUE) #viser forekomster af NA i dataframe, returns dataframe

# RemoveWhiteSpace ----
library(stringr)
#create string
my_string <- "   345\t678"
my_string
nchar(my_string)
cat(my_string  )
gsub("\t", "", my_string) #fjerner \t, new_string<- gsub("\t", "", my_string) 
new_string <- str_trim(my_string, side="both") #fjerner ikke \t, idet
new_string    #"345\t678"
nchar(new_string)  # 7, så \t regnes for én, nemlig ascii(13?)
cat(new_string  ) #345	678  finder altså ikke \t
print(new_string  )  #"345\t678"
