использование utf8toInt на фрейме данных - PullRequest
0 голосов
/ 25 апреля 2018

Очень плохо знаком с R. Я пытаюсь использовать utf8toInt против фрейма данных.
Я хочу отсканировать фрейм данных для значения Int 101 (e) и заменить его 69 (E).

Моя проблема заключается в том, как выполнить каждое значение в кадре данных и выполнить функцию utf8ToInt.{`

Создайте UTF-функцию здесь

a <- c (" красный "," синий "," желтый "," черный ") <br>b <- c(«синий», «желтый», «красный», «розовый») <br>c <- c («белый», «черный», «красный», «синий») </p>

df = data.фрейм (a, b, c)

df
abc
1 красный синий белый
2 синий желтый черный
3 желтый красный красный
4 черный розовый синий

При попытке выполнить одно значение

utf8ToInt (df [1]) Ошибка в utf8ToInt (df [1]): аргумент должен быть символьным вектором длины 1

'}

1 Ответ

0 голосов
/ 25 апреля 2018

никогда не используйте c в качестве имени переменной, поскольку c() также является функцией.

a <- c("red", "blue", "yellow", "black");b<- c("blue", "yellow", "red", "pink");c1<- c("white", "black", "red", "blue")

обратите внимание на stringsAsFactors = F часть.

df = data.frame(a,b,c1,stringsAsFactors = F)

lapply(df[[1]],utf8ToInt)

результат

# [[1]]
# [1] 114 101 100
# 
# [[2]]
# [1]  98 108 117 101
# 
# [[3]]
# [1] 121 101 108 108 111 119
# 
# [[4]]
# [1]  98 108  97  99 107

Примечание: причина, по которой это не сработало, заключается в том, что factor переменные внутренне кодируются как целочисленные значения:

utf8ToInt("red")  #works
utf8ToInt(factor("red")) #does not work
utf8ToInt(1) #does not work

Чтобы преобразовать весь набор данных, вы можете преобразовать в matrix.

lapply(as.matrix(df),utf8ToInt)

Читая ваш вопрос: Если вы хотите заменить «e» на «E», почему бы вам просто не использовать regEx?

df

       a      b    c1
1    red   blue white
2   blue yellow black
3 yellow    red   red
4  black   pink  blue

Затем используйте:

df[] <- sapply(as.matrix(df),gsub,pattern="e",replacement="E")

       a      b    c1
1    rEd   bluE whitE
2   bluE yEllow black
3 yEllow    rEd   rEd
4  black   pink  bluE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...