У IE нет свойства языков в навигаторе Object.
У него есть userLanguage и Systemlanguage.
Пожалуйста, проверьте Как получить текущую локализацию браузера с помощью javascript?
Так что в случае IE вам, возможно, придется проверить navigator.userLanguage и navigator.Systemlanguage
Вы можете попробовать
DF <- data.frame("a" = as.character(0:5),
"b" = paste(0:5, ".1", sep = ""),
"c" = letters[1:6],
stringsAsFactors = FALSE)
# Check columns classes
sapply(DF, class)
# a b c
# "character" "character" "character"
cols.num <- c("a","b")
DF[cols.num] <- sapply(DF[cols.num],as.numeric)
sapply(DF, class)
# a b c
# "numeric" "numeric" "character"
Если вы уже используете tidyverse, это заменяет все столбцы символов числовыми и оставляет остальных в покое:
library(dplyr)
library(magrittr)
# solution
dataset %<>% mutate_if(is.character,as.numeric)
# to test
str(data.frame(x1 = c('1','2','3'),x2 = c('4','5','6'),stringsAsFactors = F))
str(data.frame(x1 = c('1','2','3'),x2 = c('4','5','6'),stringsAsFactors = F) %>% mutate_if(is.character,as.numeric))
Думаю, я понял это. Вот что я сделал (возможно, не самое изящное решение) - предложения о том, как сделать imp [rove это очень приветствуется)
#names of columns in data frame
cols <- names(DF)
# character variables
cols.char <- c("fx_code","date")
#numeric variables
cols.num <- cols[!cols %in% cols.char]
DF.char <- DF[cols.char]
DF.num <- as.data.frame(lapply(DF[cols.num],as.numeric))
DF2 <- cbind(DF.char, DF.num)
Я понимаю, что это старый поток, но хотел опубликовать решение, подобное вашему запросу для функции (просто столкнулся с подобной проблемой, пытаясь отформатировать целую таблицу на процентные метки).
Предположим, у вас есть df с 5 символьными столбцами, которые вы хотите преобразовать. Во-первых, я создаю таблицу, содержащую имена столбцов, которые я хочу манипулировать:
col_to_convert <- data.frame(nrow = 1:5
,col = c("col1","col2","col3","col4","col5"))
for (i in 1:max(cal_to_convert$row))
{
colname <- col_to_convert$col[i]
colnum <- which(colnames(df) == colname)
for (j in 1:nrow(df))
{
df[j,colnum] <- as.numericdf(df[j,colnum])
}
}
Это не идеально подходит для больших таблиц, так как это происходит по ячейке, но это выполнило бы работу.
Вы можете использовать индекс столбцов: data_set[,1:9] <- sapply(dataset[,1:9],as.character)