Size: a a a

R (язык программирования)

2020 May 25

JZ

Jekaterina Zukovska in R (язык программирования)
Спасибо!
источник

A

Alexander (AlexR) in R (язык программирования)
Добрый день, коллеги! Помогите, пожалуйста, как исправить кодировку. Исходный файл вот находится вот тут :
http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt


В нем колонка вида :
20-май-20

превращается в кракозябры
23-\xec\xe0\xe9-20


Код примерно вот такой :
node <- qi_webpage %>%
 html_nodes(xpath = "//td/a") %>%
 html_attr("href")

src <- data.frame()
for(f in node){
 print(f)
 tab <- read.table(url(f),fill = T,sep = ',')
 tab <- tab[7:nrow(tab),]
 tab$id <- grep(f, node)
 src <- rbind(tab,src)
}



Помогите, пожалуйста, как исправить такую проблему с кодировкой?

Спасибо!
источник

PD

Pavel Demin in R (язык программирования)
Alexander (AlexR)
Добрый день, коллеги! Помогите, пожалуйста, как исправить кодировку. Исходный файл вот находится вот тут :
http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt


В нем колонка вида :
20-май-20

превращается в кракозябры
23-\xec\xe0\xe9-20


Код примерно вот такой :
node <- qi_webpage %>%
 html_nodes(xpath = "//td/a") %>%
 html_attr("href")

src <- data.frame()
for(f in node){
 print(f)
 tab <- read.table(url(f),fill = T,sep = ',')
 tab <- tab[7:nrow(tab),]
 tab$id <- grep(f, node)
 src <- rbind(tab,src)
}



Помогите, пожалуйста, как исправить такую проблему с кодировкой?

Спасибо!
попробовал ваш пример. на винде все нормально, на маке помогло добавление
options(encoding = "CP1251") перед импортом
источник

A

Alexander (AlexR) in R (язык программирования)
Огромное спасибо! Сработало!
источник

IM

Igor Makarov in R (язык программирования)
Добрый день

Есть вот такая табличка с данными:

  color1 color2 color3 color4 resp_blue resp_red resp_yellow resp_green
1   blue    red  green yellow         3        1           2          3
2 yellow  green   blue    red         5        7           4          3


Нужно создать 2 новых столбца. В первом среднее для имён, указанных в color1 и color2, то есть mean(resp_blue, resp_red) == 2. А во втором тоже самое, но для color3 и color4. В каждой строчке в столбцах с color разные сочетания. Я решил задачку через apply. Но всё становится текстом и приходится обратно в цифры конвертировать. Подскажите есть ли какой-то другой способ для этого? Пробовал rowwise, но не нашёл как можно обращаться к колонкам по данным из других колонок.

Код для создания таблицы:

data.frame(color1 = c("blue", "yellow"),
          color2 = c("red", "green"),
          color3 = c("green", "blue"),
          color4 = c("yellow", "red"),
          resp_blue = c(3, 5),
          resp_red = c(1, 7),
          resp_yellow = c(2, 4),
          resp_green = c(3, 3)
          )
источник

PU

Philipp Upravitelev in R (язык программирования)
Pavel Demin
попробовал ваш пример. на винде все нормально, на маке помогло добавление
options(encoding = "CP1251") перед импортом
в read_html() есть соответствующий аргумент
менять опции всей сессии я бы делал осторожно
источник

PD

Pavel Demin in R (язык программирования)
Philipp Upravitelev
в read_html() есть соответствующий аргумент
менять опции всей сессии я бы делал осторожно
поскольку код, приложенный к вопросу сам по себе не рабочий (не полный), я тестировал вот так:

f = ‘http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt'
tab <- read.table(url(f),fill = T,sep = ',')
tab <- tab[7:nrow(tab),]


если в аргументах read.table() указывать аргумент encoding или fileEncoding = “CP1251”, то должного эффекта не наступает
источник

AP

Anton Pysanka in R (язык программирования)
Alexander (AlexR)
Добрый день, коллеги! Помогите, пожалуйста, как исправить кодировку. Исходный файл вот находится вот тут :
http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt


В нем колонка вида :
20-май-20

превращается в кракозябры
23-\xec\xe0\xe9-20


Код примерно вот такой :
node <- qi_webpage %>%
 html_nodes(xpath = "//td/a") %>%
 html_attr("href")

src <- data.frame()
for(f in node){
 print(f)
 tab <- read.table(url(f),fill = T,sep = ',')
 tab <- tab[7:nrow(tab),]
 tab$id <- grep(f, node)
 src <- rbind(tab,src)
}



Помогите, пожалуйста, как исправить такую проблему с кодировкой?

Спасибо!
можно так же попробовать конверсию:
iconv(“\xec\xe0\xe9”, from = “CP1251”, to = “UTF-8”)
источник

PD

Pavel Demin in R (язык программирования)
Anton Pysanka
можно так же попробовать конверсию:
iconv(“\xec\xe0\xe9”, from = “CP1251”, to = “UTF-8”)
солгасен, это лучше
источник

PU

Philipp Upravitelev in R (язык программирования)
Anton Pysanka
можно так же попробовать конверсию:
iconv(“\xec\xe0\xe9”, from = “CP1251”, to = “UTF-8”)
да, у меня такое же решение
f_url <- 'http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt'
tmp <- read.table(f_url, sep = ',', skip = 7)
tmp$V6 <- iconv(tmp$V6, 'cp1251', 'UTF-8')
head(tmp)
источник

PU

Philipp Upravitelev in R (язык программирования)
а вот цикл с src <- data.frame() нехорошо
источник

PU

Philipp Upravitelev in R (язык программирования)
Pavel Demin
поскольку код, приложенный к вопросу сам по себе не рабочий (не полный), я тестировал вот так:

f = ‘http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt'
tab <- read.table(url(f),fill = T,sep = ',')
tab <- tab[7:nrow(tab),]


если в аргументах read.table() указывать аргумент encoding или fileEncoding = “CP1251”, то должного эффекта не наступает
а. я почему-то подумал, что там  скрапинг, html_nodes смутило
источник

АК

Артём Клевцов... in R (язык программирования)
Philipp Upravitelev
да, у меня такое же решение
f_url <- 'http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt'
tmp <- read.table(f_url, sep = ',', skip = 7)
tmp$V6 <- iconv(tmp$V6, 'cp1251', 'UTF-8')
head(tmp)
read.csv("http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt", fileEncoding = "cp1251", skip = 7L, header = FALSE)
источник

PU

Philipp Upravitelev in R (язык программирования)
Артём Клевцов
read.csv("http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt", fileEncoding = "cp1251", skip = 7L, header = FALSE)
хм. я просто encoding  брал, про fileEncoding забыл
источник

PD

Pavel Demin in R (язык программирования)
забавный факт: пусть
f = “http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt
если вызывать read.table(f, fileEncoding = "CP1251", skip = 7L), то ок
если вызывать, как автор вопроса, read.table(url(f), fileEncoding = "CP1251", skip = 7L), то не ок

поэтому я и посетовал, что аргументы fileEncoding не помогает
источник

АК

Артём Клевцов... in R (язык программирования)
Pavel Demin
забавный факт: пусть
f = “http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt
если вызывать read.table(f, fileEncoding = "CP1251", skip = 7L), то ок
если вызывать, как автор вопроса, read.table(url(f), fileEncoding = "CP1251", skip = 7L), то не ок

поэтому я и посетовал, что аргументы fileEncoding не помогает
read.csv(url("http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt", encoding = "cp1251"), skip = 7L, header = FALSE)
источник

PD

Pavel Demin in R (язык программирования)
Артём Клевцов
read.csv(url("http://maashey.me/php/2020-05-20_Kaluga/20200520_Lisa1.plt", encoding = "cp1251"), skip = 7L, header = FALSE)
ну, до этого я не додумался)
сейчас только посмотрел, что представляют собой аргументы url()
и стало понятно, почему мне помогло options()
источник

a

aGricolaMZ in R (язык программирования)
В общем, я обнаружил вот это issue. Сначала, я удивился, что порносайт был у меня в закладках, но оказалось они просто переехали:  https://exts.ggplot2.tidyverse.org/
источник

A

Andrey in R (язык программирования)
Не баг, а фича! На зависть питонщикам
источник

PU

Philipp Upravitelev in R (язык программирования)
да у них своего порно хватает, чо уж
источник