Изменение знака процента на десятичный

Я использую open office calc для загрузки статистики из Интернета в R для обработки данных. В некоторых файлах есть столбцы, содержащие проценты с символом процента. Мне нужно избавиться от знака процента, чтобы запустить созданный мной скрипт. Будут ли числа преобразованы в десятичные или останутся в процентах (без фактического символа процента), не имеет значения. Когда я создал скрипт, я использовал Microsoft Office и смог изменить процент на десятичный перед загрузкой в ​​​​R, но с тех пор отказался от своей подписки на Microsoft и не могу найти способ сделать это в открытом офисе (это спасло бы меня много времени, чтобы написать сценарий для него, так как я ежедневно работаю с 30+ листами, а ручное преобразование некоторых столбцов занимает много времени). Спасибо вам за вашу помощь


person Dan TheMan    schedule 17.04.2015    source источник
comment
См. принятый ответ здесь: stackoverflow.com/questions/10294284/   -  person Phil    schedule 17.04.2015
comment
Есть много способов справиться с этим. Было бы лучше, если бы вы могли смоделировать небольшой набор данных, демонстрирующий вашу проблему.   -  person Roman Luštrik    schedule 17.04.2015
comment
Спасибо всем за ответы. я не очень хорошо разбираюсь в R, но я нашел код, который почти делает свое дело. Вот пример файла, который я пытаюсь преобразовать   -  person Dan TheMan    schedule 18.04.2015
comment
Имя x y z xy xyz Дантеман 15,2% 10,1% 15,1 16,4 19,7 Биллибоб 22,1% 16,1% 14,0 20,1 18,7   -  person Dan TheMan    schedule 18.04.2015
comment
К сожалению, я не могу понять, как записать вышеизложенное в виде таблицы, но я уверен, что вы все поняли. Строка имени состоит из 5 столбцов (x,y,z,xy,xyz). с двумя строками под именами, dantheman и billybob. Это репликация моих данных, так как мои таблицы очень длинные, содержат около 10 столбцов и сотни строк. Я нашел код, как я уже говорил ранее, который удалит знаки процента, но моя проблема с кодом заключается в том, что он берет имена и превращает их в NA (например, dantheman станет NA). Код будет показан в следующем сообщении.   -  person Dan TheMan    schedule 18.04.2015
comment
Вот код (pitchdash ‹- data.frame(sapply(pitchdash, function(x) as.numeric(gsub(%, , x)))))) @Jilber Спасибо за этот код, он очень близок к тому, что мне нужно . Если вы видите это, пожалуйста, помогите мне. Всем еще раз спасибо за поддержку   -  person Dan TheMan    schedule 18.04.2015
comment
Вам нужно будет работать только с числовыми столбцами, а не со всем фреймом данных. Посмотрите на повторяющийся вопрос, на который я ссылался выше, - там нужно было сохранить столбец даты, как вам нужно сохранить столбец имени.   -  person Sam Firke    schedule 18.04.2015
comment
спасибо @SamFirke. отлично работает для одного столбца имен. К сожалению, у меня есть два столбца, в которых есть имена, и если я повторю функцию, с именем второго столбца во втором фрагменте кода он вернется к тому, чтобы дать мне NA в обоих столбцах имен. Есть ли способ исправить это? Вот предупреждение: Предупреждающее сообщение: В extract_numeric(c(273L, 94L, 333L, 362L, 114L, 392L, 165L, 71L, : NA введены принудительно. Еще раз большое спасибо   -  person Dan TheMan    schedule 19.04.2015
comment
Чтобы работать исключительно с числовыми столбцами, вы захотите исключить столбцы символов, сколько бы их ни было. В этом вопросе принятый ответ делает это, ссылаясь на номер столбца df[-1,]; ответ с extract_numeric относится к столбцу как к году. Вы можете добавить другой столбец символов к этому аргументу. В любом случае вы захотите прочитать, как выбрать определенные столбцы фрейма данных, например: stackoverflow.com/questions/10085806/   -  person Sam Firke    schedule 20.04.2015
comment
Большое спасибо за всю помощь @SamFirke. и все остальные, кто заглянул, чтобы дать совет. это был окончательный код, который я придумал, и он отлично работает до сих пор. Все, что я сделал, это скопировал первую строку вашего сообщения и добавил к ней имя второго столбца. cbind(df %›% select(Name),(df %›% select(Team), # сохранить столбец года как есть df %›% select(-Name) %›% mutate_each(funs(extract_numeric)) ))   -  person Dan TheMan    schedule 20.04.2015


Ответы (1)


Смотрите эти 2 ответа:

Как читать данные, когда некоторые числа содержат запятые в качестве разделителя тысяч?

Укажите пользовательский формат даты для colClasses аргумент в read.table/read.csv

Просто измените ответы, убрав знак процента вместо запятых, и, при желании, разделите на 100.

person Greg Snow    schedule 17.04.2015